Mysql 是否显示联合中联接表中的所有字段?
如何显示已包含在UNION with JOIN中的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
关税\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