需要适当的语法来连接多个表

时间:2016-12-20 14:21:28

标签: mysql join

我有一段时间试图实现我想做的事情。我想知道它是否可以完成?我有以下4个表:

git reset --hard 99fb45413eb9ca4b3063e07b40402b136a8cf264
git push --force

我希望在sql查询结果中看到的是: user_name,file_name,city,state

这是可能的还是我可以朝正确的方向转向?

3 个答案:

答案 0 :(得分:0)

以下是连接表的连接查询:

SELECT file_name,user_name,city,state FROM files f LEFT JOIN user_name u ON f.user_id=u.user_id LEFT JOIN city c ON f.city_id=c.city_id LEFT JOIN state s ON f.state_id = s.state_id

答案 1 :(得分:-1)

SELECT t1.user_name,
       COALESCE(t2.file_name, 'NA'),
       COALESCE(t3.city, 'NA'),
       COALESCE(t4.state, 'NA')
FROM user_names t1
LEFT JOIN files t2
    ON t1.user_id = t2.user_id
LEFT JOIN city t3
    ON t2.city_id = t3.city_id
LEFT JOIN state t4
    ON t2.state_id = t4.state_id

我在这里使用了LEFT JOIN,因为给定的用户可能没有filesstatecity表中的条目。在这种情况下,NULL将显示为文件名,城市或州列,我们可以"捕捉"使用COALESCE。在这种情况下,我选择将其替换为NA,但您可以根据需要进行修改。

答案 2 :(得分:-1)

只需加入两个表就可以得到结果:

SELECT u.user_name,f.file_name,f.city, f.state FROM user_names as u RIGHT JOIN files as f ON f.user_id = u.user_id