0

我正在尝试阻止某些列表,这是我尝试过的命令

SELECT * FROM USER LIMIT 0, 50 WHERE名称NOT IN (SELECT * FROM排除)

我的排除表包含我想要阻止它的用户名,但似乎无法正常工作。

4

2 回答 2

1

将其重新编码为左连接:-

SELECT `USER`.* 
FROM `USER`
LEFT OUTER JOIN exclude
ON `USER`.name = exclude.name
WHERE exclude.name IS NULL
LIMIT 0, 50

但是,如果您想使用与以前相同的样式来执行此操作,则需要从排除中的选择中返回匹配字段,而不是每个字段(即,不是 SELECT *)

SELECT * 
FROM `USER` 
WHERE name NOT IN (SELECT name FROM exclude)
LIMIT 0, 50
于 2013-07-12T22:52:09.143 回答
0

尝试这个 :

SELECT * FROM USER LIMIT 0, 50 WHERE name NOT IN (SELECT name FROM exclude)

查询不起作用的最可能原因是该exclude表中可能包含多个列,这会在您尝试运行查询时导致错误

于 2013-07-12T22:52:18.550 回答