特定用户购买的所有产品

时间:2018-06-15 11:19:23

标签: sql

我有两张桌子: x_products

id    name    image  price
--  -------  ------  -----
1    name1    path     10
2    name2    path      8
3    name3    NULL      7
4    name4    path     10
5    name5    path      5

x_user_products

id  userId  productId
--  ------  --------- 
1     100      1     
2     100      2
3     105      1
4     105      3
5     100      5
6     102      2

如何在x_products中选择用户的所有产品(例如用户100)? 结果应该是这样的:

id    name    image  price
--  -------  ------  -----
1    name1    path     10
2    name2    path      8
5    name5    path      5

2 个答案:

答案 0 :(得分:3)

您正在寻找 INNER JOIN 关键字,该关键字选择两个表中具有匹配值的记录。

Inner Join

代码:

SELECT xp.*
FROM x_products xp
INNER JOIN x_user_products xup ON xp.id = xup.productId
WHERE xup.userId = 100

答案 1 :(得分:0)

您似乎想要:

select xp.*
from x_products xp
where exists (select 1 
              from x_user_products xup 
              where xup.productId = xp.id and xup.userId = 100);