MySQL查询获取空表

时间:2018-11-19 14:16:38

标签: mysql sql join

这是我的查询:

SELECT user_items.userid, users.id, users.username FROM user_items
LEFT JOIN users ON user_items.userid = users.username
UNION ALL
SELECT user_items.userid, users.id, users.username FROM user_items
RIGHT JOIN users ON user_items.userid = users.username

这是结果:

enter image description here

是否可以删除表示空值的表?

编辑:

理想的结果是没有更多的表为NULL

1 个答案:

答案 0 :(得分:1)

我认为您可能只是在错误的列上联接-从user_items.useridusers.id联接肯定更有意义-因为这些字段具有匹配的值。您将永远不会从useridusername匹配-一个是数字,另一个是字符串。

我不认为您需要两个查询-看起来单个INNER JOIN应该可以满足您的需求。

SELECT 
  user_items.userid, 
  users.id, users.username 
FROM 
  user_items
  INNER JOIN users ON 
    user_items.userid = users.id

我认为您需要更仔细地检查工作,还可能需要更详细地研究不同类型的JOIN,以便您确切了解它们的意图。