0

複数のテーブルを結合し、1 行でデータを取得します。

tbl_2012-08 (構造)

ID | データログ | データ名
1 | 0001 | 最初 2 | 0002 | 2番目


tbl_2012-09 (構造)

ID | データログ | データ名
1 | 0003 | 三番


出力:

データログ
0001
0002
0003

一度にデータを抽出できるように、この 2 つのテーブルを結合するにはどうすればよいでしょうか。
いずれの場合も次のように役立ちます
:
別のテーブルまたは何かを作成します

4

3 に答える 3

5

月ごとに別々のテーブルがある理由はわかりませんが、UNIONクエリを使用して両方のテーブルからデータを返すことができるはずです。

select id, data_log, data_name
from `tbl_2012-08`
union all
select id, data_log, data_name
from `tbl_2012-09`

a を使用しUNION ALLて、両方のテーブルから重複を含むすべての行を返しました (存在する場合)。両方のテーブルに共通の値がない限り、テーブルを作成することはできませんJOIN。また、月ごとに個別のテーブルがある場合は、両方のテーブルに共通の値がないと推測されます。

補足として、データがどのテーブルから来ているかを簡単に識別できるように、列を含める場合があります。

select id, data_log, data_name, '2012-08' mth
from `tbl_2012-08`
union all
select id, data_log, data_name, '2012-09' mth
from `tbl_2012-09`

私の提案は、このデータ構造の変更を検討することです.月ごとに別々のテーブルを持つと、管理が非常に面倒になります.

を返すだけの場合はdata_log、次を使用します。

select data_log
from `tbl_2012-08`
union all
select data_log
from `tbl_2012-09`
于 2013-08-28T11:48:33.597 に答える
0

UNION ALLを使用する必要があります

SELECT id, data_log, data_name
FROM `tbl_2012-08`
UNION ALL
SELECT id, data_log, data_name
FROM`tbl_2012-09`

この場合、Union は 1 つの select ステートメントの結果を他のものと結合して、1 つのテーブルを作成します。両方の select ステートメントが同じ数の列を返す必要があることに注意することが重要です。

于 2013-08-28T11:49:57.357 に答える