mysql 表联合和新列

mysql tables union and new column

给两个后续 tables,

phone table:

 PID   NAME
1001 iphone
1002 samsung
1003 sony

pc table:

 CID  NAME
1001 HP
1002 XPS

我怎样才能得到结果table?

  DID  TYPE NAME
 1001 PHONE iphone
 1002 PHONE samsung
 1003 PHONE sony
 1001 PC    HP
 1002 PC    XPS

我觉得这个应该用UNION,但是这个TYPE怎么处理呢?

如果你也想复制结果,你应该使用 UNION ALL,否则你可以使用 UNION 来消除重复值。

您的查询将是这样的,

select pid as DID,'PHONE' as TYPE,name from phone
UNION all
select CID as DID,'PC' as TYPE,name from PC;

这将 select 两个表中的所有记录。

SELECT PID AS DID, 'PHONE' AS TYPE, NAME FROM Phone
UNION ALL
SELECT CID AS DID, 'PC' AS TYPE, NAME FROM PC;

使用这个查询:

select pid as DID,'PHONE' as TYPE, name from phone
UNION 
select cid as DID,'PC' as TYPE, name from PC;