mysql从被阻止的表中排除名称

时间:2013-07-12 22:47:20

标签: mysql

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

SELECT * FROM USER LIMIT 0, 50 WHERE {名称{1}} {排除{1}}

我的排除表包含用户名,我想阻止它,但似乎无效。

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

试试这个:

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

查询无效的最可能原因是exclude表中可能包含多个列,当您尝试运行查询时会导致错误

相关问题