2016-04-22 4 views
1

MySQLテーブル組合と新しい列

電話テーブル2次の表を与える:

PID NAME 
1001 iphone 
1002 samsung 
1003 sony 

PCテーブルを:

CID NAME 
1001 HP 
1002 XPS 

は、どのように私は結果表を入手できますか?

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

これはUNIONを使用する必要がありますが、TYPEを処理するにはどうすればよいですか?

答えて

3

また、結果を複製する場合は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; 

、このようになります。

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

UNIONは重複レコードを除去することができます。 たとえば、 1001,1002は一度だけ選択されます。 UNION ALLがこのトリックを行います。 – Priyanshu

0

使用このクエリ:

select pid as DID,'PHONE' as TYPE, name from phone 
UNION 
select cid as DID,'PC' as TYPE, name from PC; 
関連する問題