Jose- preface the product_id column with table ID e.g. table_1.product_id table_2.product_id or use the alias assigned to tableName
Saludos Cordiales desde EEUU Martin ______________________________________________ Disclaimer and confidentiality note Everything in this e-mail and any attachments relates to the official business of Sender. This transmission is of a confidential nature and Sender does not endorse distribution to any party other than intended recipient. Sender does not necessarily endorse content contained within this transmission. > From: jb...@noticiasargentinas.com > To: mysql@lists.mysql.com > Subject: Re: How can avoid 2 selects and 2 while? SOLVED > Date: Thu, 12 Feb 2009 13:45:13 -0300 > > > ----- Original Message ----- > From: "Brent Baisley" <brentt...@gmail.com> > To: "Jose Julian Buda" <jb...@noticiasargentinas.com> > Sent: Thursday, February 12, 2009 1:21 PM > Subject: Re: How can avoid 2 selects and 2 while? > > > > On Thu, Feb 12, 2009 at 10:43 AM, Jose Julian Buda > > <jb...@noticiasargentinas.com> wrote: > >> table_1: > >> product_id features ..... > >> 1 aaa > >> 2 bbb > >> 3 ccc > >> > >> table_2 : > >> product_id name size price > >> 1 11 1 111 > >> 1 12 2 221 > >> 1 13 3 331 > >> 2 21 1 112 > >> 2 22 2 222 > >> 3 31 1 113 > >> 3 32 2 223 > >> 3 33 3 333 > >> > >> > >> What i want is the next report for example the size =2 > >> ............. > >> Report of products with size =2 > >> > >> Product features : aaa > >> Name 12 Price 221 > >> > >> Product features : bbb > >> Name 22 Price 222 > >> > >> Product features : ccc > >> Name 32 Price 223 > >> ........... > >> > >> > >> basically what i do now with php is : > >> ... > >> $cliente=mysql_query("select * from table_1"); > >> while($row = mysql_fetch_array($cliente)) > >> { > >> printf("\nProduct features : %s\n",$row[features]); > >> $cliente2=mysql_query("select name,price from table_2 where > >> product_id='$row[product_id]' and size=2"); > >> while($row2 = mysql_fetch_array($cliente2)) > >> { > >> . print("Name %s --- Price %s\n",$row2[name],$row2[price],); > >> } > >> } > >> ......... > >> > >> How can i do this without 2 select and whitout 2 while and the "features" > >> be printed just one time? > >> > >> > >> Thank you in advance > >> > >> Jose Julian Buda > > > > Whenever you have a query in a loop, you know you are doing something > > wrong. Your query will pull repeated values, but there is no way > > around that. You'll then check if the repeated value changes in PHP. > > > > $cliente = mysql_query("SELECT table_1.*, table_2.name, table_2.price > > FROM table_2 JOIN table_1 ON table_2.product_id=table_1.product_id > > WHERE table_2.size=2 ORDER BY table_1.product_id"); > > $prev_prod_id = -1; > > while($row = mysql_fetch_array($cliente)) > > { > > if ( $row['product_id']!=$prev_prod_id ) { > > printf("\nProduct features : %s\n",$row[features]); > > $prev_prod_id = $row['product_id']; > > } > > print("Name %s --- Price %s\n",$row[name],$row[price],); > > } > > > > Note I have not tested it, but you get the idea. > > > > Brent Baisley > > > > Brent , it work fine with just 1 select query > Thank you very much > > Jose Julian Buda > > > -- > MySQL General Mailing List > For list archives: http://lists.mysql.com/mysql > To unsubscribe: http://lists.mysql.com/mysql?unsub=mgai...@hotmail.com > _________________________________________________________________ Windows Liveā¢: Keep your life in sync. http://windowslive.com/howitworks?ocid=TXT_TAGLM_WL_t1_allup_howitworks_022009