11個のテーブルを持つデータベースがあります。
には15個のフィールドが含まれ、そのtables A
うちの10個には別のテーブルのIDまたは0の値が含まれています。これらの各テーブルには、2つのフィールドとがid
ありdescription
ます。
私はdbにクエリを実行して、idの場所にtable A
権利description
を持つ、またはidが0の場合はnullを取得します。
何を使用する必要がありますか?参加、左または内部参加?どうやって?
このステートメントを使用して、説明を選択し、tableaで残りのテーブルの左結合を使用します。
IF(id = 0, NULL, description)
例:
SELECT A.* , IF(A.bid = 0, NULL, B.description) , IF(A.cid = 0, NULL, C.description)
from tablea A
LEFT JOIN tableb B on A.bid = B.id
LEFT JOIN tablec C on A.cid = C.id
等々....
左参加
SELECT * FROM A
LEFT JOIN B ON (A.KEY=B.KEY)
結合が不可能な場合はNullになります