mysql union从另一个表中获取2个列名,对应于2个id列

时间:2014-07-06 12:25:49

标签: mysql join union

我有一张桌子"任务"它存储了创建的任务的详细信息,我需要在单个查询中获取创建者ID和ASSIGNEDTO ID的名称,我为其创建了一个UNION但是我在mysql中收到以下错误

两个选择查询都可以完美地作为单个查询执行

#1222 - The used SELECT statements have a different number of columns

SELECT a.task_id, a.task_title,a.task_created_by,a.task_creation_date,b.user_id, b.user_email  FROM task a,users b WHERE a.task_created_by = b.user_id

UNION

SELECT a.task_assigned_to, b.user_email FROM task a,users b WHERE a.task_assigned_to = b.user_id

1 个答案:

答案 0 :(得分:0)

  1. 仅基于相同列的选择可以是UNION的主题
  2. 有一种解决方法,意味着使用" as"对于您在另一个表中可能没有的任何列。像这样:
  3. SELECT b, '' as c FROM table1 UNION ALL SELECT b, c FROM table2

    基于此," c"对于table1将始终为空,但UNION仍然可以工作。

    将此逻辑用于具有不同列的UNION表