Good Day。mySQLで3つのテーブルに参加する
私はこの質問が既に尋ねられていることを知っていますが、私は問題を実装するのに苦労しています。
私はしたい 3テーブル。
Order_Header(Order_Header_ID{PK}, Order_Date, Order_Time, Order_Complete)
Order_Line(Order_Line_ID{PK}, Product_ID{FK}, Order_Header_ID{FK},Quantity)
Products(Product_ID{PK}, Description, Cost)
私は1つのテーブルに、それは=「YES」Order_Complete 3つのテーブルのうちのOrder_Header_ID、数量や説明が表示されるように3つのテーブルに参加したい:ここに私のテーブルがどのように見えるかです。 私はすべての情報を表示するが、それらに参加しない以下のSQLを持っている。
SELECT
Order_Header.Order_Header_ID,
Products.Description,
Order_Line.Quantity
FROM Order_Header, Products, Order_Line
WHERE Order_Complete = 'yes'
アイデアは、Order_Header_IDを対応するDescriptionとQuantityで1回だけリストするという考えです。
は、あなたの現在のクエリは、結合条件を欠けている、事前に
"すべての情報を表示しますが、参加しない次のSQLがあります。 'FROM Order_Header、Products、Order_Line WHERE Order_Complete = 'yes''実際には、暗黙的なCROSS JOIN構文を使用しています。 –
*絶対に* FROM句にカンマを使用しないでください。 *常に*適切で明示的な 'JOIN'構文を使用します。 –
@GordonLinoff "FROM'句でカンマを使用しないでください。 'FROM'節に入れて内部結合テーブルを作ることは意味があります。唯一の問題は 'WHERE'節が適切な結合条件を含んでいなければならないということです。 –