如何在一个语句中从三个表中查询sql?

时间:2019-02-16 16:32:57

标签: sql sqlite

我有三个表,如下所示。

如何(在一条查询语句中)获得由user_id = 1排序的“产品名”? (user_1订购的1、2、3的product_name)?

enter image description here

4 个答案:

答案 0 :(得分:1)

类似的事情会有所帮助

select * from products
where exists (
   select 1 from orders o
   inner join users u
      on o.user_id = u.user_id
   where o.product_id = u.product_id
);

答案 1 :(得分:1)

您需要加入3个表:

select u.user_name, p.*
from products p inner join orders o
on o.product_id = p.product_id
inner join users u
on u.user_id = o.user_id
where u.user_id = 1

答案 2 :(得分:1)

只需在两个表的订单和产品之间添加一个(inner)join

select p.product_name 
  from products p
  join orders o on p.product_id = o.product_id
 where o.user_id = 1

natural join可能被使用

select product_name 
  from products p
  natural join orders o
 where user_id = 1

答案 3 :(得分:1)

不确定要了解您的问题...

也许这可以帮助您

SELECT product_name
FROM orders
INNER JOIN products ON products.product_id = orders.product_id
WHERE orders.user_id = 1

请注意 -在这种情况下,由于不需要用户名,因此不需要users表 -您将获得相同product_name的重复行