从两个SQL字段中选择问题

时间:2014-11-14 15:54:38

标签: mysql

我有一个SQL查询,如:

SELECT tbl1.alloweduser, tbl2.ID, tbl2.user_login 
FROM tbl1, tbl2 
WHERE NOT tbl1.alloweduser <> tbl2.ID;

上面的查询比较了两个字段,但输出了具有相同值的字段(“ID”和“alloweduser”)。

我想要做的是输出与tbl2不匹配的字段。

“ID”的值为:1,2,3,4,5,“ alloweduser ”的值为1,2,3,4。

我只想输出值 5 ,并且在此示例中它是相应的user_login。

如何?

3 个答案:

答案 0 :(得分:1)

尝试:

SELECT tbl2.user_login, tbl2.ID
FROM tbl2 
LEFT JOIN tbl1 ON tbl1.alloweduser = tbl2.ID
WHERE tbl1.alloweduser IS NULL;

答案 1 :(得分:1)

您可能希望使用LEFT JOIN进行空检查:

SELECT tbl2.ID, tbl2.user_login
FROM tbl2
LEFT OUTER JOIN tbl1
  ON tb2.ID = tb1.alloweduser
WHERE tbl1.alloweduser IS NULL

确定如何指定联接的一个很好的资源链接如下:

http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/

注意:对于MySQL,您只需指定LEFT JOIN而不是LEFT OUTER JOIN,因为它们是同义词。

答案 2 :(得分:0)

这是你的问题

WHERE NOT tbl1.alloweduser <> tbl2.ID;

&lt;&gt; 表示&#34;不等于&#34;

你要求

NOT a <> b

&#34; NOT NOT equals&#34;

你想要

a <> b

OR

NOT a = b

不是两者。