【问题标题】:mysql union getting 2 column names from another table corresponding to 2 id columnsmysql union 从对应于 2 个 id 列的另一个表中获取 2 个列名
【发布时间】:2014-07-06 12:25:48
【问题描述】:

我有一个表“任务”,它存储创建的任务的详细信息,我需要在一个查询中获取创建者 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

【问题讨论】:

    标签: mysql join union


    【解决方案1】:
    1. 只有基于相同列的选择才能成为 UNION 的主题
    2. 有一种变通方法意味着对其他表中可能没有的任何列使用“as”。像这样:

    SELECT b, '' as c FROM table1 UNION ALL SELECT b, c FROM table2

    基于此,table1 的“c”将始终为空,但 UNION 仍然有效。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-08
      • 2019-03-28
      • 1970-01-01
      相关资源
      最近更新 更多