Mysql 是否显示联合中联接表中的所有字段?

Mysql 是否显示联合中联接表中的所有字段?,mysql,database,Mysql,Database,如何显示已包含在UNION with JOIN中的关税\u数据表中的某些字段 例如: SELECT X.* FROM ( SELECT phone_id, tariff_id, active FROM table1 WHERE id = 5 UNION SELECT dgt.phone_id, tns.tariff_id, dgt.active FROM table2 AS dgt JOIN ta

如何显示已包含在UNION with JOIN中的
关税\u数据
表中的某些字段

例如:

SELECT  X.* FROM
    (
         SELECT phone_id, tariff_id, active  FROM table1 WHERE id = 5
      UNION
          SELECT dgt.phone_id, tns.tariff_id, dgt.active  FROM  table2 AS dgt 
                JOIN tariff_data AS tns ON tns.something = dgt.something
          WHERE id = 5
    ) as X

您需要在两个Select语句中都包含TARGIN_data字段,并将第一个字段设置为null或任意值:

SELECT  X.* FROM
(
    SELECT phone_id, tariff_id, active, null as "somefield"  FROM table1 WHERE id = 5
      UNION
    SELECT dgt.phone_id, tns.tariff_id, dgt.active, tns.somefield FROM  table2 AS dgt 
            JOIN tariff_data AS tns ON tns.something = dgt.something
    WHERE id = 5
) as X

关税id不是关税数据中的字段吗?你想包含一个不在表1中的字段吗?是的,它可以包含所有的字段,即使不在
表1
啊,我明白了,但是有点难看。是的-我修改了答案-如果有帮助,你可以将不存在的字段设置为任何值。
SELECT  X.* FROM
(
    SELECT phone_id, tariff_id, active, null as "somefield"  FROM table1 WHERE id = 5
      UNION
    SELECT dgt.phone_id, tns.tariff_id, dgt.active, tns.somefield FROM  table2 AS dgt 
            JOIN tariff_data AS tns ON tns.something = dgt.something
    WHERE id = 5
) as X