所以我有两个表,它们的列名是一样的。在结果查询中,我希望合并结果,结果将占用空的结果。
以下是我的表格结构:
位置
账户
员工
学生
子系统控制器
姓名
办公室
这是我的密码: SELECT app.approved, p.position, n.fname, n.mname, n.lname, o.office, e.signature, ssc.signature FROM approvals app LEFT JOIN positions p ON p.position_id = app.position_id LEFT JOIN accounts a ON a.account_id = app.account_id LEFT JOIN employees e ON e.account_id = a.account_id LEFT JOIN students s ON s.account_id = a.account_id LEFT JOIN ssc ON ssc.students_id = s.students_id AND ssc.removed = 0 LEFT JOIN names n ON n.name_id = s.name_id OR n.name_id = e.name_id LEFT JOIN offices o ON o.office_id = p.office_id WHERE app.event_id = '10'
实际结果如下:
注意,e.signature的某些行是空的,而ssc.signature的行是相同的,因此我希望将它们合并,顺便说一下,ssc永远不能在employees表中有它的签名。
2条答案
按热度按时间vfhzx4xs1#
因为您知道要合并的列的名称,所以需要使用mysql
COALESCE()
函数返回在提供的参数列表中找到的第一个非空值。这会回来的
Aquaman
.实际上,可以使用列名而不是原始值。例如:
请注意
AS signature
part不是必需的,但应该注意您可以为组合字段选择别名。p1tboqfb2#
如果列名相同,则可以使用别名。
更多信息:http://www.mysqltutorial.org/mysql-alias/