You want a LEFT JOIN:

SELECT table1.title, table2.feature
FROM table1
LEFT JOIN table2 USING (sku)
WHERE table1.sku in ($sku1, $sku2, $sku3)
ORDER BY FIELD(table1.sku, $sku1, $sku2, $sku3) ASC

I strongly suggest picking up Paul DuBois' "MySQL":

http://www.kitebird.com/mysql-book/

____________________________________________________________
Eamon Daly



----- Original Message ----- From: "Grant Giddens" <[EMAIL PROTECTED]>
To: <mysql@lists.mysql.com>
Sent: Monday, March 28, 2005 6:00 PM
Subject: SELECT help



Hi,

 I am tring to do a select from 2 tables.

Table1: sku
title


Table 2:
sku
feature

SELECT table1.title, table2.feature FROM table1,
table2 WHERE table1.sku in ($sku1, $sku2, $sku3) ORDER
BY FIELD(table1.sku, $sku1, $sku2, $sku3) ASC

That seems to work to some extint, but I am getting
way too many results (more than 3).  It's returning
all combinations of sku and feauture even if they
don't share the same sku.

I modified the select to:

SELECT table1.title, table2.feature FROM table1,
table2 WHERE (table1.sku = $table2.sku) AND table1.sku
in ($sku1, $sku2, $sku3) ORDER BY FIELD(table1.sku,
$sku1, $sku2, $sku3) ASC

That seemed to work almost correctly.  I have some
items in table2 that don't have a feature and therefor
don't have a row associated with them.


For example, if I have 3 items in each table, the above select works fine.

If I have 3 items in table1 and 2 items in table2 the
above query only gives me 2 results.

table1 will always be fully populated and table2 might
be missing some features.

How can I run my query to get 3 results and if the
feature is missing still return the table.title and
NULL for the feature?

Thanks,
Grant

-- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]



Reply via email to