tsunet回答ポイント 300ptウォッチ

SQLの記述について教えてください。

MYSQL5.0.77を使用しています。

3つのテーブルがあります。

products 商品情報
p_id pname price
1 商品1 1000
2   商品2 2000
3   商品3 3000

users ユーザー情報
u_id uname age
1 山田 12
2   田中 20
3   山中 30

histories 購入情報
m_id pid uid
1 1 3
2 1 2
3 2 3
4 2 1



これらの中から、例えば、ユーザー全員を表示した上で、商品1を購入したかどうかを出したいです。

u_id uname 購入?
1 山田  未購入
2   田中  購入済
3   山中  購入済

↑このような感じです。


SELECT users.* histories.* FROM users LEFT JOIN histories ON users.u_id=histories.uid

と書いてみましたが、これだと商品を絞り込んでいないため、未購入の情報は入ってきますが、1ユーザーが複数購入していると、同じユーザーが histories の行数だけでてきてしまいます。

WHERE histories.pid=1

と加えると、未購入のユーザーはでてきません。


どのように記述したらよいかご教授いただければ幸いです。

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

ベストアンサー

その他の回答

この質問へのコメント

コメントはありません

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2011-08-12 22:19:38
終了日時
2011-08-13 20:36:43
回答条件
1人3回まで

この質問のカテゴリ

この質問に含まれるキーワード

SQL1319uname15

人気の質問

メニュー

PC版