From: <admin Date: February 7 2012 8:16pm Subject: RE: Question about INNER JOIN List-Archive: http://lists.mysql.com/php/213 Message-Id: <010b01cce5d5$5930b1e0$0b9215a0$@com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit HOLLY CRAP that is it. That did exactly what I wanted to do. THANK YOU SO MUCH I have been beating my head on this thing for a couple hours now and I knew it was something stupid I was doing TY TY TY. This even sped up the result return a good 1.5 seconds > -----Original Message----- > From: Christopher Ingram [mailto:cbingram@stripped] > Sent: Tuesday, February 07, 2012 3:07 PM > To: admin@stripped > Cc: php@stripped > Subject: Re: Question about INNER JOIN > > Seems like you could use a combination of LEFT JOIN and IFNULL. > > The left join will bring back null for cost when the join fails and the > IFNULL will let you replace it with your desired output. > > Something like: > > SELECT `items`.`*`, > > IFNULL(`payscale_product`.`cost`, '0.00') AS cost > > FROM > > Items > > LEFT JOIN payscale_products ON > `payscale_products`.`id`=`items`.`product_id` > > WHERE > > `items`.`target`=$target AND customer_id=$customer > > LIMIT 1 > > > Typed on my iPhone so please excuse any typos. Good luck! > > Thanks, > Chris > > > > On Feb 7, 2012, at 2:52 PM, "admin@stripped" < > admin@stripped> wrote: > > Well let me explain the details a little better. > > > > I am running through a table on criteria and then inner joining from > another > table where criteria from the first table matches. > > I would like to be able to say if it doesn't match on the INNER JOIN > then > INNER JOIN on a default row. > > Everything is being done on the MYSQL side nothing should come to PHP > and > there is no way to match a passed php variable because the information > is > determined in the matches row from the first table. > > > > > > Example: > > SELECT `items`.`*`,`payscale_product`.`cost` > > FROM > > Items > > INNER JOIN payscale_products ON > `payscale_products`.`id`=`items`.`product_id` > > WHERE > > `items`.`target`=$target AND customer_id=$customer > > LIMIT 1 > > > > > > Some of the products have been set up for billing some have not so some > of > the products will not be in the payscale_products table until they have > been > setup. > > I would return a payscale_products.cost as '0.00' if there was no match > but > If there is no match nothing returns so I can't set the value to 0 > > > > If there was a way to detect there was no return from the INNER join > and > then INNER JOIN on the default payscale by default. > > > > > > > > > > > > > > > > From: madavapeddi suman [mailto:suman.madavapeddi@stripped] > Sent: Tuesday, February 07, 2012 2:34 PM > To: admin@stripped > Cc: php@stripped > Subject: Re: Question about INNER JOIN > > > > hi, > > > > You can out put the php variable that holds the SQL statement and > take > the SQL statement and execute it in the Database to see if the inner > join > works > > > > /Suman > > On Tue, Feb 7, 2012 at 12:27 PM, wrote: > > I have a SQL statement that executes okay, but I noticed the INNER > JOIN > fails because of a criteria match and it should. > > > > Is there a way for me to detect the Failure of the inner join so I can > change the criteria? > > > > I was thinking of an IF statement but not sure how you detect if the > INNER > join has failed is there a result set?