我有以下 3 个表:
-- 用户 -- id firstname lastname
-- 产品 -- id 名称 价格
-- 购买 -- user_id product_id
我如何显示(选择)id = 1 的用户购买了哪些产品?
我有以下 3 个表:
-- 用户 -- id firstname lastname
-- 产品 -- id 名称 价格
-- 购买 -- user_id product_id
我如何显示(选择)id = 1 的用户购买了哪些产品?
您可以使用以下内容:
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
这使用您的链接表将所有 3 个表连接在一起purchases
。
如果您不熟悉JOIN
语法,那么这是一个有用的链接:
如果您只需要用户 1(而不是用户名)购买的产品,那么产品和购买之间的连接就足够了:
Select prod.name, prod.price
from products prod
inner join purchases pur on prod.id = pur.product_id
where pur.user_id = 1
这应该这样做:
select * from products
where id in (select product_id from purchases where user_id = 1)
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