我有两个名为products的产品和movingprod。产品主键是moveprod表的外键。
这是产品表结构 的的productid, 用户身份, PRODNAME, manfname 即可。 其中userid为空,用于显示所有用户的所有记录
这是moveprod表结构
ID
的的productid,
用户身份,
moved_date
但是,如果任何用户为其列表删除了一个产品复制未移动到具有productid和session userid的movingprod表。
所以我想要选择产品表中的产品,但是如果此产品位于带有特定用户ID的移动产品表中。如果该用户是会话用户ID,则该产品不会显示为会话用户ID,而是显示给其他用户ID。
答案 0 :(得分:0)
Select *
from product p,
movedproduct mp
where p.productid = mp.productid
and p.userid != "sessionid"
答案 1 :(得分:0)
SELECT p.*
FROM product p
LEFT JOIN movedproduct mp
ON p.productid = mp.productid
AND mp.userid = "sessionid"
WHERE mp.productid IS NULL
或者使用 NOT EXISTS :
SELECT p.*
FROM product p
WHERE NOT EXISTS
( SELECT 1
FROM movedproduct mp
WHERE p.productid = mp.productid
AND mp.userid = "sessionid"
)
或使用 NOT IN :
SELECT p.*
FROM product p
WHERE p.productid NOT IN
( SELECT mp.productid
FROM movedproduct mp
WHERE mp.userid = "sessionid"
)