我正在尝试选择特定id中具有相同名称的特定类型,名称,EXCLUDING条目的条目。最后一部分是我无法理解的棘手部分。
SELECT name FROM table WHERE type = $type AND (name is not contained in an entry with id).
我希望结果是某个类型的所有名称的集合,但尚未包含在当前ID中。
我需要在这里执行两个查询吗?或者我可以将它浓缩为一个。
感谢。
答案 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').
您能否提供有关架构的更多详细信息?具体的例子总是有帮助的。