我有以下3个表格:
- 用户 - ID 名字 名字
- 产品 - ID 名称 价
- 购买 - 用户身份 PRODUCT_ID
我如何用(选择)id = 1的用户购买?
答案 0 :(得分:4)
您可以使用以下内容:
select u.firstname, u.lastname, p.name
from users u
inner join purchases pc
on u.id = pc.user_id
inner join products p
on pc.product_id = p.id
where u.id = 1
使用purchases
的链接表将所有3个表连接在一起。
如果您不熟悉JOIN
语法,那么这是一个有用的链接:
答案 1 :(得分:1)
如果您只需要用户1购买的产品(而不是用户名),那么产品和购买之间的连接就足够了:
Select prod.name, prod.price
from products prod
inner join purchases pur on prod.id = pur.product_id
where pur.user_id = 1
答案 2 :(得分:0)
这应该这样做:
select * from products
where id in (select product_id from purchases where user_id = 1)
答案 3 :(得分:0)
select *
from users
join purchases
on users.id = purchases.user_id
join products
on products.id = purchases.product_id
where users.id = 1
如果你真的想要一个产品清单
select distinct(products.name)
from users
join purchases
on users.id = purchases.user_id
join products
on products.id = purchases.product_id
where users.id = 1
order by products.name