データを取得するにはどうすればよいですか複数のテーブルから?
SQL JOINは、2つのテーブルのレコードを結合します。
JOINは、2つのテーブル内の関連する列値を検索します。
クエリには、0、1、または複数のJOIN操作を含めることができます。
INNERJOINはJOINと同じです。キーワードINNERはオプションです。
4種類のJOIN
- (INNER)JOIN:レコードを選択します両方のテーブルで値が一致するもの。
- FULL(OUTER)JOIN:左または右のテーブルレコードに一致するすべてのレコードを選択します。
- LEFT(OUTER)JOIN:からレコードを選択します。右のテーブルレコードが一致する最初の(左端の)テーブル。
- 右(外側)の結合:左のテーブルレコードが一致する2番目の(右端の)テーブルからレコードを選択します。
注:すべてのINNERおよびOUTERキーワードはオプションです。
さまざまなJOINの詳細については、後続のチュートリアルページを参照してください。
SQL JOIN構文
一般的な構文は
SELECT column-names FROM table-name1 JOIN table-name2 ON column-name1 = column-name2 WHERE condition
INNERの一般的な構文は次のとおりです。
SELECT column-names FROM table-name1 INNER JOIN table-name2 ON column-name1 = column-name2 WHERE condition
注:INNERキーワードはオプションです。これはデフォルトであり、最も一般的に使用されるJOIN操作です。
Id
もみtName
LastName
City
Country
Phone
Id
OrderDate
OrderNumber
CustomerId
TotalAmount
SQLJOINの例
問題:すべての注文を顧客情報とともに一覧表示する
この例では、テーブルAliases for and Customerを使用すると便利だった可能性があります。
結果:830レコード。
OrderNumber | TotalAmount | FirstName | LastName | City | Country |
---|---|---|---|---|---|
542378 | 440.00 | ポール | ヘンリオット | ランス | フランス |
542379 | 1863.40 | カリン | ジョセフ | ミュンスター | ドイツ |
542380 | 1813.00 | マリオ | ポンテス | リオデジャネイロ | ブラジル |
542381 | 670.80 | メアリー | セーブリー | リヨン | フランス |
542382 | 3730.00 | Pascale | Cartrain | Charleroi | Belgium |
542383 | 1444.80 | マリオ | ポンテス | リオデジャネイロ | ブラジル |
542384 | 625.20 | ヤン | ワン | ベルン | スイス |
Id
ProductName
SupplierId
UnitPrice
パッケージ
廃止
Id
OrderId
ProductId
UnitPrice
数量
Id
OrderDate
OrderNumber
CustomerId
TotalAmount
問題:すべての注文を
製品名で一覧表示します
数量と価格
製品名で一覧表示します
数量と価格
このクエリは、3つのテーブルで2つのJOIN操作を実行します。
O、I、およびPはテーブルエイリアスです。 。日付は列エイリアスです。
O、I、およびPはテーブルエイリアスです。 。日付は列エイリアスです。
結果:2155レコード