我有两张桌子: 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
答案 0 :(得分:3)
您正在寻找 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);