Mysql Query排除某个条目

时间:2009-08-17 19:42:56

标签: mysql set

我正在尝试选择特定id中具有相同名称的特定类型,名称,EXCLUDING条目的条目。最后一部分是我无法理解的棘手部分。

SELECT name FROM table WHERE type = $type AND (name is not contained in an entry with id). 

我希望结果是某个类型的所有名称的集合,但尚未包含在当前ID中。

我需要在这里执行两个查询吗?或者我可以将它浓缩为一个。

感谢。

3 个答案:

答案 0 :(得分:9)

您可以使用子查询:

SELECT name
FROM table
WHERE type = $type
AND name NOT IN (SELECT entry FROM t WHERE id = $id );

答案 1 :(得分:2)

如果将多个值与子查询返回的行进行比较,则采用以下方式:

SELECT name FROM table
WHERE type = $type 
AND (name, criteria, rank) NOT IN 
  (SELECT name, criteria, rank FROM t WHERE id = $id );

您必须确保列表(name, criteria, rank)与子查询中选择的列匹配。您不应该使用SELECT *

答案 2 :(得分:1)

你的意思是这样的:

SELECT name FROM table WHERE type = $type 
                       AND name not in ('larry','moe','curly').

您能否提供有关架构的更多详细信息?具体的例子总是有帮助的。