这是我的查询:
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
这是结果:
是否可以删除表示空值的表?
编辑:
理想的结果是没有更多的表为NULL
答案 0 :(得分:1)
我认为您可能只是在错误的列上联接-从user_items.userid
到users.id
联接肯定更有意义-因为这些字段具有匹配的值。您将永远不会从userid
到username
匹配-一个是数字,另一个是字符串。
我不认为您需要两个查询-看起来单个INNER JOIN应该可以满足您的需求。
SELECT
user_items.userid,
users.id, users.username
FROM
user_items
INNER JOIN users ON
user_items.userid = users.id
我认为您需要更仔细地检查工作,还可能需要更详细地研究不同类型的JOIN,以便您确切了解它们的意图。