2012-03-23 4 views
1
(SELECT field1 FROM Table1) UNION 
(SELECT field1 FROM Table2); 

これは、両方のテーブルからすべての行を取得します。 tablenameを結果に追加して、レコードの元の場所をわかりやすくする方法はありますか?たとえば、IFテーブル1を使用して、レコードに文字列を追加しますか?MYSQL UNION - mysql文字列関数を使用していますか?

私は現在入手たとえばレコードが、私はあなたが二列の値としてテーブル名を追加することができます

t1-banana or t2-banana 
+1

あなたのテーブルがどのように見えるかはわかりません.... – Neal

+0

なぜこれが必要ですか? –

+0

ユニオン演算子では、ユニークな行が1つあることになります。 – Habib

答えて

2
(SELECT CONCAT("t1-", field1) FROM Table1) 
UNION 
(SELECT CONCAT("t2-", field1) FROM Table2); 
1
(SELECT Concat(field1 , '-Table1') FROM Table1) UNION 
(SELECT Concat(field1 , '-Table2') FROM Table2); 
+2

'+'はMySQLではなく、SQLサーバの連結演算子として機能します。 –

+0

MySQLの文字列を連結するには、 'CONCAT'を使用してください。 –

+0

ありがとう、私は考えを伝えたと思った;) – Habib

4

をしたいと思います

banana 

です:

(SELECT field1, 'Table1' AS table_name FROM Table1) 
UNION 
(SELECT field1, 'Table2' AS table_name FROM Table2); 
+1

+1、これは 'CONCAT'よりも優れています。 –

+0

+1、MySQLの方が速く、PHPを使用してより簡単にチェックできます –

+0

はい。ロケットは私の質問に正しく答えましたが、私のコードではこの答えを使っていました。ありがとう – Harry

2
(SELECT field1, 't1' as table_name FROM Table1) 
UNION  
(SELECT field1, 't2' as table_name FROM Table2); 
+1

+1、これはおそらく 'CONCAT'を使うよりも良い考えです。 –

関連する問題