如何连接表格

时间:2012-09-24 20:34:54

标签: mysql database join left-join relationship

我有以下3个表格:

- 用户 - ID 名字 名字

- 产品 - ID 名称 价

- 购买 - 用户身份 PRODUCT_ID

我如何用(选择)id = 1的用户购买?

4 个答案:

答案 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语法,那么这是一个有用的链接:

A Visual Explanation of SQL Joins

答案 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