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;