質問
の違いは何ですか JOIN
や UNION
?いただきたいのですが、可能です。
解決
UNION
はJOIN
はデカルト積を作り、それをサブセットしながら、互いの後のクエリから行を置く - 全く異なる操作。 UNION
の簡単な例:
mysql> SELECT 23 AS bah
-> UNION
-> SELECT 45 AS bah;
+-----+
| bah |
+-----+
| 23 |
| 45 |
+-----+
2 rows in set (0.00 sec)
JOIN
のsimilary簡単な例:
mysql> SELECT * FROM
-> (SELECT 23 AS bah) AS foo
-> JOIN
-> (SELECT 45 AS bah) AS bar
-> ON (33=33);
+-----+-----+
| foo | bar |
+-----+-----+
| 23 | 45 |
+-----+-----+
1 row in set (0.01 sec)
他のヒント
UNION には、二つの結果を結合または組合内のすべてのクエリに属しているすべての行を含む単一の結果セットに複数のクエリます。
に参加し使用することにより、あなたが取得することができますテーブル間の論理的な関係に基づいて、2つの以上のテーブルからのデータ。 SQLは、別のテーブル内の行を選択するために、一つのテーブルからのデータを使用する方法を示して結合します。
UNION操作が使用異なっている2つのテーブルの列を結合することに参加します。
UNION例:
SELECT 1 AS [Column1], 2 AS [Column2]
UNION
SELECT 3 AS [Column1], 4 AS [Column2]
出力:
Column1 Column2
-------------------
1 2
3 4
例のJOINます:
SELECT a.Column1, b.Column2 FROM TableA a INNER JOIN TableB b ON a.Id = b.AFKId
この意志出力条件a.Id = b.AFKId
が真であるテーブルの両方からすべての行ます。
接合および労働組合を結合するのに使用からデータを一つ以上のテーブルの違いはどのようにデータを結合します。
簡単に言うと、 参加データを統合への新しい列.の場合はテーブルを取りあげ、そのデータから最初の表示のオールインワンセットのカラムと第二のテーブルの列と同じです。
労働組合のデータを統合新されています。 の場合はテーブル"unioned"と、そのデータから最初のテーブルのオールインワンセットの列のデータからのテーブルを別のセットです。列の同じ結果です。
こちらは視覚的に描く。テーブルAとBの列の結果とします。
各行の結果のカラムが含まれてから両方のテーブルB行が作成したときの列からテーブルに一致列からです。この試合の参加条件です。
この接合うためにはどの値を含むしています。これは、通常、結果denormalizingように正規化)として有用である外部キー一つのテーブルにカラム値の主キーです。
先に述べたように、通常、上記の描写することです。ユ各行内での結果からテーブルや、その他。ユ列な組み合わされる結果列に結合します。
両方の接合および労働組合を結合するのに使用からデータを一つ以上のテーブルを単一ます。いというものではないですが、それはかなり違います。は結合で結合カラムから異なるテーブルの和集合が使用されていますを行った。
登録しよう:
Aは、同一または持つ列を表示するために使用されるジョイン 別のテーブルから別の名前。出力が表示され すべての列が個別に示されています。つまり、 列は隣同士に整列されます。
UNION
和集合演算子は、二つのデータを合成するために使用されます 同じデータ型を持つ列を持つテーブル。 UNIONは、両方のテーブルからデータを行った場合であろう 同じデータ型を持つ単一の列に集めます。
例
以下に示す2つのテーブルを参照してください。
Table t1
Articleno article price manufacturer_id
1 hammer 3 $ 1
2 screwdriver 5 $ 2
Table t2
manufacturer_id manufacturer
1 ABC Gmbh
2 DEF Co KG
次に結合タイプを実行するためのクエリを以下に示す。
SELECT articleno, article, manufacturer
FROM t1 JOIN t2 ON (t1.manufacturer_id =
t2.manufacturer_id);
articelno article manufacturer
1 hammer ABC GmbH
2 screwdriver DEF Co KG
これは参加されます。
UNIONは、あなたが持つテーブルまたは結果セットを持っていることを意味し 同じ量とカラムの種類、あなたはこれを追加 一緒にテーブル/結果セット。この例を見ます:
Table year2006
Articleno article price manufacturer_id
1 hammer 3 $ 1
2 screwdriver 5 $ 2
Table year2007
Articleno article price manufacturer_id
1 hammer 6 $ 3
2 screwdriver 7 $ 4
SELECT articleno, article, price, manufactruer_id
FROM year2006
UNION
SELECT articleno, article, price, manufacturer_id
FROM year2007
articleno article price manufacturer_id
1 hammer 3 $ 1
2 screwdriver 5 $ 2
1 hammer 6 $ 3
2 screwdriver 7 $ 4
連合(EU)は、2つのクエリが1のように見えます。単一のクエリ文の中で二つ以上のテーブルを調べるためにしている参加
が参加し、労働組合は、1つまたは複数のテーブルからデータを結合するために使用することができます。違いは、データが結合された方法にあります。
簡単に言えば、新しい列にデータを結合する結合します。二つのテーブルが互いに接合されている場合は、最初のテーブルからのデータが同じ行の2番目のテーブルの列の横の列の一組に示されている。
労働組合は、新しい行にデータを結合します。二つのテーブルが一緒に「UNION句」である場合、最初の表からのデータが1行のセットと別のセットにおいて第二のテーブルからのデータです。行は同じ結果になります。
は、組合が合併することの結果(必ずするの SQL Serverなど)(機能やバグを覚えておいてください?)
select 1 as id, 3 as value
union
select 1 as id, 3 as value
ID、値
1,3
select * from (select 1 as id, 3 as value) t1 inner join (select 1 as id, 3 as value) t2 on t1.id = t2.id
ID、値、ID、値
1,3,1,3
1。 SQL句は、データベース内の2つの以上のテーブルからレコードを結合するために使用されて参加します。 JOINは、それぞれに共通の値を使用して2つのテーブルからのフィールドを結合するための手段です。
2。 SQL UNION演算子は、二つ以上のSELECT文の結果を兼ね備えています。 UNION内の各SELECTステートメントは、同じ数の列を持っている必要があります。列も同様のデータ型を持っている必要があります。また、各SELECT文の列が同じ順序である必要があります。
例えば: 表1の顧客/表2オーダー
の内側には、参加ます:
SELECT ID、NAME、金額、日付
顧客からの
INNER JOINをORDERS
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID。
ユニオンます:
SELECT ID、NAME、金額、日付
顧客からの
LEFT JOINのORDERS
CUSTOMERS.ID = ORDERS.CUSTOMER_ID ON
UNION
SELECT ID、NAME、金額、日付 顧客からの
RIGHT ORDERSのJOIN
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID。
Ussing組合
組合では結果のエンジンは単一の結果セットを含むすべての列に属するすべての問合せを見るにいたりました。
UNION Example: SELECT 121 AS [Column1], 221 AS [Column2] UNION SELECT 321 AS [Column1], 422 AS [Column2]
Output: Column1 Column2 ------------------- 121 221 321 422
Ussing入
参加できるデータを取得するより良いコミュニケーションテーブルに基づく論理との関係です。
JOIN Example: SELECT a.Column1, b.Column2 FROM TblA a INNER JOIN TblB b ON a.Id = b.id
は、抽象的で、彼らは、その二つのテーブルまたは結果セットが合成されているに、類似しているが、UNIONは、同様のデータタイプを有する列に同じ数の列を含む結果セットを組み合わせるため本当にです。構造が同じ、唯一の新しい行が追加されています。
参加するには、あなたはNO /同様の列が共有されているところデカルトが参加していないなど、あらゆる可能な構造とテーブル/結果セットを組み合わせることができます。
連合操作はを垂直の結果を組み合わせたの行の集計、 連合操作の横の列のの集計を合わせた結果である。
のではないかと思いたいの違いものとして:
- 参加テーブルを追加
- 連合(et)せます。