Php 数据库-检索其他表中不存在的行的查询
所以我有两张桌子互相连接Php 数据库-检索其他表中不存在的行的查询,php,mysql,database,database-design,Php,Mysql,Database,Database Design,所以我有两张桌子互相连接 TABLE Admin_Evaluate EvalID int primary key, EvalStatus tinyint, UserID int (foreign to user) TABLE Items ItemID int primary key, EvalID (foreign to Admin_Evalulate) Sample Data: | TABLE Admin Evaluate | -----------------------------
TABLE Admin_Evaluate
EvalID int primary key,
EvalStatus tinyint,
UserID int (foreign to user)
TABLE Items
ItemID int primary key,
EvalID (foreign to Admin_Evalulate)
Sample Data:
| TABLE Admin Evaluate |
---------------------------------------------
EvalID | EvalStatus | UserID
1 0 5
2 1 5
3 0 5
4 1 5
5 1 5
6 1 5
| TABLE Items |
----------------------------------------------
ItemID | EvalID
1 2
2 4
所以基本上我想检索EvalStatus=1和UserID=5的EvalID,它不存在于表项中
结果应为5和6
提前感谢:您可以使用不存在:
选择EvalID
从管理员处评估为
其中EvalStatus=1,UserID=5,并且
不存在从项目中选择1作为i,其中i.EvalID=a.EvalID
您可以使用“不存在”:
选择EvalID
从管理员处评估为
其中EvalStatus=1,UserID=5,并且
不存在从项目中选择1作为i,其中i.EvalID=a.EvalID
这可以通过左连接完成:
SELECT t.evalID FROM Admin_Evaluate t
LEFT OUTER JOIN Items s
ON(t.evalID = s.evalID)
WHERE s.evalID is null
AND t.evalstatus = 1
and t.userID = 5
这可以通过左连接完成:
SELECT t.evalID FROM Admin_Evaluate t
LEFT OUTER JOIN Items s
ON(t.evalID = s.evalID)
WHERE s.evalID is null
AND t.evalstatus = 1
and t.userID = 5
您可以使用左联接:
SELECT * FROM Admin_Evaluate a LEFT JOIN Items i ON i.EvalId = a.EvalId WHERE EvalStatus = 1 AND UserID = 5 AND i.EvalId is NULL;
您可以使用左联接:
SELECT * FROM Admin_Evaluate a LEFT JOIN Items i ON i.EvalId = a.EvalId WHERE EvalStatus = 1 AND UserID = 5 AND i.EvalId is NULL;