2

私は3つのテーブルを持っています。そのうちの 2 つは同じ (同じ列、異なるデータ) で、3 番目には他の 2 に関する情報データがあります。データベースは次のようになります。

表1:

+--------------+
|  ID | Name   |
+--------------+
| 1  | Table 2 |
| 2  | Table 3 |
+--------------+

表 2:

+-------------------------------+
| Name | Temperature | Pressure |
+-------------------------------+
| Table 2 |    22    | 1013     |
+-------------------------------+

表 3:

+-------------------------------+
| Name | Temperature | Pressure |
+-------------------------------+
| Table 3 |    20    | 1009     |
+-------------------------------+

すべてを 1 つのテーブルに結合しようとしています。これは次のようになります。

+-------------------------------+
| Name | Temperature | Pressure |
+-------------------------------+
| Table 2 |    22    | 1013     |
| Table 3 |    20    | 1009     |
+-------------------------------+

SQLクエリがどのように見えるべきか考えていますか?

ありがとう

4

2 に答える 2

3

ユニオンを試してください:

SELECT table1.name, temperature, pressure 
FROM table1 inner join table2 ON
table1.name = table2.name
UNION
SELECT table1.name, temperature, pressure 
FROM table1 inner join table3 ON
table1.name = table3.name

編集:これらの結果から別の選択を行うことができます。次に、制限、グループ化、または順序付けを行うことができます。

SELECT * FROM
(
    SELECT table1.name, temperature, pressure 
    FROM table1 inner join table2 ON
    table1.name = table2.name
    UNION
    SELECT table1.name, temperature, pressure 
    FROM table1 inner join table3 ON
    table1.name = table3.name
) as JoinedTable
LIMIT 0, 1

編集 2: 各テーブル (テーブル 2 とテーブル 3) から 1 つの行のみを取得するには、クエリごとに limit/group by/order by を使用できます (列の日付があると仮定します)。

SELECT table1.name, temperature, pressure 
FROM table1 inner join table2 ON
table1.name = table2.name
ORDER BY date DESC
LIMIT 0, 1
UNION
SELECT table1.name, temperature, pressure 
FROM table1 inner join table3 ON
table1.name = table3.name
ORDER BY date DESC
LIMIT 0, 1
于 2013-02-13T23:05:44.557 に答える
0

UNIONステートメントを使用できます。

(
    SELECT Name, Temperature, Pressure
    FROM Table1 INNER JOIN Table2 ON Table1.Name = Table2.Name
)
UNION
(
    SELECT Name, Temperature, Pressure
    FROM Table1 INNER JOIN Table3 ON Table1.Name = Table3.Name
)
于 2013-02-13T23:05:53.593 に答える