からデータを返す私は2つのテーブルを持っていますテーブル。MYSQLクエリ(存在する場合)の値に基づいて行を選択するためにそうでなければ、別のテーブル
これまでのところとても良いです。ただし、itemID
のCATALOG
に対応する行は、ORDER
テーブルに存在しない可能性があります。その場合は、最初のテーブルCATALOG
のitemName
,itemCode
を使用してフォールバックします。
これはMYSQLを単一の(複合)文で使用することは可能ですか?
編集:ここでは は、サンプルテーブルは、私が項目に関する完全なデータを取得するために、次のクエリを使用し
CATALOG:
------------------------------------
| itemID | itemCode | itemName |
------------------------------------
| 1 | 89873232 | Oats |
| 2 | 32849392 | Beer |
------------------------------------
ORDER:
----------------------------------------------
| orderID | itemID_FK | itemPrice | etc... |
----------------------------------------------
| 213232 | 2 | 3.99 | ... |
----------------------------------------------
です:
SELECT itemID, itemName, itemPrice FROM CATALOG
INNER JOIN ORDER
ON itemID = itemID_FK
WHERE itemID = %d
CATALOG
価格は含まれませんので、私は、これは参加必要ORDER
から得られる。 itemID=1
を使用すると、ORDER
テーブルに対応するエントリがなく、クエリが失敗します。私はちょうど2つのテーブル間LEFT OUTER JOIN
を使用ORDER
あなたは現在何に参加していますか?あなたは現在の質問を出すことができますか? '... CATALOG LEFT JOIN ORDER ON CATALOG.itemID = ORDER.itemID_FK'を実行すると、' CATALOG'の各行に対して 'ORDER'の行が得られます。もし見つからなければ、その列に 'NULL'があります。 –
いくつかのサンプルデータと、後の結果セットの例を表示できますか? – Phil
サンプルテーブルと詳細を追加しました。私の編集を参照してください。 –