可能重复:
如何连接三个表
我有 4 张桌子:
- 文件夹(id_folder,名称)
- 子文件夹(id_subfolder,id_folder,名称,其他列,...)
- 片(id_piece,id_subfolder,id_folder)
- 图像(id_image,id_piece,名称,..)
如何获取一个文件夹的所有内容(例如“id_folder=1”)?
可能重复:
如何连接三个表
我有 4 张桌子:
如何获取一个文件夹的所有内容(例如“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 连接可视化解释会有所帮助。