76

現在、次の方法で、外部/主キーが等しいかどうかについて 2 つのテーブルの結合をクエリできます。

 $result = mysql_query("SELECT * FROM `table1` 
                         INNER JOIN 
                       `table2` ON table1.primaryKey=table2.table1Id");

これを複数のテーブル (すべて同じ外部キーを持つ) に拡張したいと思います。何も返さない次のコードを試しています。誰かが私が間違っていることを指摘できますか?

 $result = mysql_query("SELECT * FROM `table1` 
                        INNER JOIN `table2` 
                        INNER JOIN table3 
                        ON table1.primaryKey=table2.table1Id=table3.table1Id");
4

10 に答える 10

164
SELECT * 
FROM table1 
INNER JOIN table2
      ON table1.primaryKey=table2.table1Id
INNER JOIN table3
      ON table1.primaryKey=table3.table1Id
于 2013-02-21T05:13:28.467 に答える
30

以下は、3 つ以上のテーブルを結合するための一般的な SQL クエリ構文です。この SQL クエリは、MySQL、Oracle、Microsoft SQLServer、Sybase、および PostgreSQL など、すべての主要なリレーション データベースで機能するはずです。

SELECT t1.col, t3.col FROM table1 join table2 ON table1.primarykey = table2.foreignkey
                                  join table3 ON table2.primarykey = table3.foreignkey

最初にテーブル 1 とテーブル 2 を結合します。これにより、テーブル 1 とテーブル 2 のデータが結合された一時テーブルが生成され、それがテーブル 3 に結合されます。この式は、3 つ以上のテーブルから N 個のテーブルに拡張できます。N 個のテーブルを結合するには、SQL クエリに N-1 個の結合ステートメントが必要であることを確認する必要があります。2 つのテーブルを結合するには 1 つの結合ステートメントが必要で、3 つのテーブルを結合するには 2 つの結合ステートメントが必要です。

于 2013-02-21T05:24:10.690 に答える
1

考えられる解決策:

SELECT Company.Company_Id,Company.Company_Name,
    Invoice_Details.Invoice_No, Product_Details.Price
  FROM Company inner join Invoice_Details
    ON Company.Company_Id=Invoice_Details.Company_Id
 INNER JOIN Product_Details
        ON Invoice_Details.Invoice_No= Product_Details.Invoice_No
 WHERE Price='60000';

-- tets の変更

于 2013-12-17T14:15:33.877 に答える
0
select * from Employee inner join [Order] 
On Employee.Employee_id=[Order].Employee_id
inner join Book 
On Book.Book_id=[Order].Book_id
inner join Book_Author
On Book_Author.Book_id=Book.Book_id
inner join Author
On Book_Author.Author_id=Author.Author_id;
于 2013-10-18T02:11:45.170 に答える
0

正しい構文は次のようになります。

SELECT * FROM table1 INNER JOIN table2 ON table1.primaryKey = table2.ForeignKey
INNER JOIN table3 ON table3.primaryKey = table2.ForeignKey

または、table1 の table3 を結合する最後の行は次のようになります。

ON table3.ForeignKey= table1.PrimaryKey
于 2013-02-21T05:15:22.117 に答える