除了MySQL中的所有等价物

时间:2012-10-22 21:06:09

标签: mysql

所以我有一个名为members的表和另一个名为group的表。该组的领导者也是一个成员

要检索不是领导者的成员,我会执行以下操作 代码:

SELECT first_name, last_name, rank
FROM members
EXCEPT ALL
SELECT first_name, last_name, rank
FROM members INNER JOIN groups ON mid=leader;  --edited gid as mid 

在MySQL中执行此操作会给我一个语法错误。我应该在MySQL中使用EXCEPT ALL?

3 个答案:

答案 0 :(得分:2)

SELECT first_name, last_name, rank
FROM members 
LEFT OUTER JOIN groups ON gid=leader
WHERE leader is null

不确定leader表中是否有gidgroupsgroups表中的列必须在null子句中进行where检查。

答案 1 :(得分:1)

子查询可以这样做,例如:

SELECT first_name, last_name, rank
FROM members
WHERE id NOT IN (
  SELECT leader
  FROM groups 
  WHERE leader = members.id
)

我们需要了解您的表格结构以帮助您进一步

答案 2 :(得分:0)

您可以尝试使用此方案。

SELECT 
        r.col1,r.col2 
FROM    tabel1 r 
WHERE ROW ( r.col1,r.col2 ) NOT IN( 
                              SELECT 
                                  col1,col2 
                              FROM tabel2 
                              );