2012-04-13 14 views
0

こんにちは私は、mysqlクエリのためのいくつかの助けが必要です。私は、テーブルAからのすべてのデータを何時に表示したいのかと同時に、テーブルBが現在の日付を渡すかどうかを示しています。1つのテーブルからすべての結果を表示する方法と条件を確認する

TABLE A 
AID 
NAME 
ADDRESS 

TABLE B 
BID 
DETAIL 
DATE 
AID 

SELECT a.*, b.bid 
FROM TABLE A 
LEFT JOIN TABLE B 
ON A.AID = B.AID 
WHERE date > DATE_SUB(CURDATE(), INTERVAL 1 DAY) //how to play with this? 

私を助けてください。

答えて

3
SELECT v.*, b.bid 
FROM TABLE A 
LEFT JOIN TABLE B 
ON A.AID = B.AID AND B.date > DATE_SUB(CURDATE(), INTERVAL 1 DAY) 
+0

そんなことは考えられませんでした。 ありがとう! – Eric

0

LEFT JOINAのすべての行のために複数の行を返すことができます - あなたの質問には何も条件に一致するB内に複数の行が存在することはできませんと言いません。これを避けるには、GROUP BY(またはDISTINCT)を使用する必要があります。次のようなものがあります。

SELECT a.*, max(b.date) AS last_date 
FROM a 
LEFT JOIN b ON a.aid = b.aid AND b.date >= curdate() 
GROUP BY a.aid 
+0

が感謝します。 – Eric

関連する問題