2

11個のテーブルを持つデータベースがあります。

には15個のフィールドが含まれ、そのtables Aうちの10個には別のテーブルのIDまたは0の値が含まれています。これらの各テーブルには、2つのフィールドとがidありdescriptionます。

私はdbにクエリを実行して、idの場所にtable A権利descriptionを持つ、またはidが0の場合はnullを取得します。

何を使用する必要がありますか?参加、左または内部参加?どうやって?

4

2 に答える 2

1

このステートメントを使用して、説明を選択し、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 

等々....

于 2012-11-23T09:50:47.663 に答える
0

左参加

SELECT * FROM A 
    LEFT JOIN B ON (A.KEY=B.KEY)

結合が不可能な場合はNullになります

于 2012-11-23T09:49:58.130 に答える