Re: need help to build a query
| From: | Brad Bonkoski | Date: | Mon, 09 Oct 2006 19:59:05 +0000 |
| Subject: | Re: need help to build a query | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-242871@lists.php.net to get a copy of this message | ||
afan@afan.net wrote:
hi to all, I have table orders with primary key order_id. I have table uploaded_files with primary key ufid and uploaded files are linked to orders by order_id column. I have to list all orders and uploaded files. this works fine: $query = mysql_query(" select order_id, order_date, order_status from orders order by order_id desc limit 100"); while($result=mysql_fetch_array($query)) { echo "ID: ". $result['order_date']."|"; echo "DATE: ". $result['order_date'] ."|"; echo "STATUS: ". $result['order_status'] ."|"; echo "UPLOADED FILES: "; $query2 = mysql_query("Perhaps something like this: (not sure how this would play with the limit key word, but you could play around with it...) If you can guarantee that a record (order_id) will appear in both tables, a simple join will work... but if a record in table A exists but not in table B, a join will not return that record, which is why there is a left outer join. select o.order_id, o.order_date, o.order_status, uf.file_name from orders o left outer join uploaded_files uf on uf.order_id = o.order_id order by o.order_id desc Not sure if mysql supports this..?? select * from (select o.order_id, o.order_date, o.order_status, uf.file_name from orders o left outer join uploaded_files uf on uf.oerder_id = o.order_id order by o.order_id desc ) LIMIT 100select uf.file_name from uploaded_files as uf where uf.order_id = $result['order_id']"); while($result2=mysql_fetch_array($query2)) {echo $result2['file_name']."|";} echo "<hr>"; } but I know there must be much better solution then this one. thanks for any help. -afan