2012-05-09 17 views
0

私は名前テーブルからfirst_nameを取得しようとしていますが、そのusers_idがOrdersテーブルにあり、order_num = 1であるのにエラーが発生しています。MYSQL JOIN with ANDエラー

SELECT first_name 
FROM customers 
LEFT JOIN orders 
ON orders.order_id = customers.cust_id 
AND orders.order_num = 1 

が、私のクエリは、それがorders.order_num=1を無視するように、代わりに一つだけの複数の値を返している - 私のクエリは、右に見えるん、または私が間違ってやっている何かがあるのでしょうか?

+1

ための1件の結果を得ることになり場合のみに結果を制限に一致する場所レコードのみが含まれますこのグラフは助けになる可能性があります:http://stackoverflow.com/questions/4715677/difference-between-left-join-and-right-join-in-sql-server/4715847#4715847 –

答えて

2
SELECT first_name 
FROM customers 
LEFT JOIN orders 
ON orders.order_id = customers.cust_id 
WHERE orders.order_num = 1 
+0

私はwrestliされています時間をかけて結合して周りにいる。私は最後の 'WHERE'節が最初のテーブルにあると思ったのですか?とにかくそれはしかし働く! – Derp

+2

ちょっと@Derp、これがあなたの問題の解決策である場合は、タグを付けてください。人々に大きな答えを与え続ける動機づけ! –

+0

ええ、私は10分のタイムリミットがあると思います - 私には許されませんでしたxD - TY WojtekT – Derp

0
AND orders.order_num = 1 

WHERE orders.order_num = 1 
0

はこれを試してみてくださいする必要があります。

SELECT first_name 
FROM customers 
INNER JOIN orders 
ON (orders.cust_id = customers.id) 
WHERE orders.order_num = 1 
GROUP BY customers.id 

INNER JOINON条件が

WHERE列order_num = 1

GROUP BYは必ずあなただけおそらく、各顧客