我试图阻止某些列表,这是我尝试过的命令
SELECT * FROM USER LIMIT 0, 50 WHERE
{名称{1}} {排除{1}}
我的排除表包含用户名,我想阻止它,但似乎无效。
答案 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
表中可能包含多个列,当您尝试运行查询时会导致错误