重複の可能性:
3 つのテーブルを結合する方法
私は4つのテーブルを持っています:
- フォルダ (id_folder,name)
- サブフォルダー(id_subfolder,id_folder,name,othercolumn,...)
- piece(id_piece,id_subfolder,id_folder)
- 画像(id_image,id_piece,name,..)
1 つのフォルダーのすべてのコンテンツを取得するにはどうすればよいですか (たとえば、「id_folder=1」)。
重複の可能性:
3 つのテーブルを結合する方法
私は4つのテーブルを持っています:
1 つのフォルダーのすべてのコンテンツを取得するにはどうすればよいですか (たとえば、「id_folder=1」)。
これらのテーブル間の関係がゼロから多であると仮定すると、次のように機能する可能性があります。
SELECT folder.id_folder, folder.name, subfolder.id_subfolder, subfolder.name, subfolder.othercolumn, piece.id_piece, image.id_image, image.name
FROM folder
LEFT JOIN subfolder
ON folder.id_Folder = subfolder.id_folder
LEFT JOIN Piece
ON subfolder.id_subfolder = piece.id_subfolder
LEFT JOIN [image]
on piece.id_piece = image.id_piece
WHERE folder.id_folder = 1;
JOIN
次のようなテーブルを作成します。
select *
from folder f
left join subfolder sf
on f.id_folder = sf.id_folder
left join piece p
on sf.id_subfolder = p.id_subfolder
and sf.id_folder = p.id_folder
left join image i
on p.id_piece = i.id_piece
where f.id_folder = 1
JOIN
構文を学習するのに助けが必要な場合は、 SQL 結合の視覚的な説明が役立ちます。