我有三张桌子
File
- fileId(pk), code, & description
Hierarchy
- fileId(fk), folderId(fk), folderKey(pk)
Folder
- folderId(pk), folderName
在Hierarchy表中,fileId对于文件夹为null,而folderId对于文件为null。 我正在尝试加入所有三个以获取哪个文件位于哪个文件夹中。
此查询没有给我任何结果
SELECT File.fileId, File.code, File.description, Hierarchy.folderId,
Hierarchy.folderKey, Folder.folderName
FROM File INNER JOIN
Hierarchy ON File.fileId = Hierarchy.fileId INNER JOIN
Folder ON Hierarchy.folderId = Folder.folderId
任何线索?
问候。
答案 0 :(得分:0)
这有用吗?
SELECT File.fileId, File.code, File.description, Hierarchy.folderId,
Hierarchy.folderKey, Folder.folderName
FROM File
JOIN Hierarchy ON File.fileId = Hierarchy.fileId
LEFT JOIN Folder ON Hierarchy.folderId = Folder.folderId
答案 1 :(得分:0)
试试这个:
Select x.fileId, x.code, x.description, fd.folderId, x.folderKey, fd.folderName
From Folder fd Left Join (
select f.fileid, f.code, f.description, h.folderId, h.folderKey
from [File] f join Hierarchy h
on f.fileId = h.fileId ) x
on fd.folderId = x.folderId
答案 2 :(得分:0)
如果所有表中的数据都相互对应,则查询中没有问题。如果任何两个有和第三个可能没有相应字段的数据,那么您的内部联接将不会产生任何结果。左连接你的表,其中可能没有数据。