是否可以总是返回3行?即使没有数据?
所以我有两个表,我总是需要返回3行,这样我就不必担心创建逻辑,如果我可以仅通过查询执行此操作,那么我就可以节省时间。
用户表
|user_id| name | status|
1 bob 1
2 alice 1
3 maria 0
转移表
id| user_id|transfer_name|
1 1 test1
2 1 test1
3 1 test1
4 1 test1
5 1 test1
6 1 test1
7 2 test1
8 2 test1
9 2 test1
10 2 test1
这是我当前的查询
SELECT superstar.user_id,superstar.name,superstar.ranking FROM (
SELECT transfer.user_id,user.name,COUNT(transfer.transfer_name) AS ranking
FROM transfer AS transfer
LEFT JOIN users AS user ON user.id = transfer.user_id
GROUP BY transfer.user_id
UNION SELECT 'N/A'
) AS superstar
LIMIT 3;
如果只有两行怎么办?我仍然想返回3行。我尝试使用UNION,但出现了The used SELECT statements have a different number of columns
错误
而且我觉得我做错了。任何帮助将不胜感激。
答案 0 :(得分:0)
尝试一下
SELECT superstar.user_id,superstar.name,superstar.ranking FROM (
SELECT transfer.user_id,user.name,COUNT(transfer.transfer_name) AS ranking
FROM transfer AS transfer
LEFT JOIN users AS user ON user.id = transfer.user_id
GROUP BY transfer.user_id
UNION ALL
SELECT 'N/A', 'N/A', 0
UNION ALL
SELECT 'N/A', 'N/A', 0
UNION ALL
SELECT 'N/A', 'N/A', 0
) AS superstar
LIMIT 3;