我有一段时间试图实现我想做的事情。我想知道它是否可以完成?我有以下4个表:
git reset --hard 99fb45413eb9ca4b3063e07b40402b136a8cf264
git push --force
我希望在sql查询结果中看到的是: user_name,file_name,city,state
这是可能的还是我可以朝正确的方向转向?
答案 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
,因为给定的用户可能没有files
,state
或city
表中的条目。在这种情况下,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