我有一个查询:
SELECT `Name`, `ID_dir`, 999 as `children`
FROM `dir` dir WHERE dir.`fid_parent` IS NULL
AND (
EXISTS (
SELECT 1
FROM `file` f
WHERE dir.ID_dir = f.fid_parent
)
OR (
SELECT 1
FROM `dir` d2
WHERE dir.ID_dir = d2.fid_parent
)
)
我检查目录是否有任何外键的地方。 如何移动该信息来代替"选择...999 作为children
"? 我想在那个地方返回(0 或 1(异或布尔值作为children
.
将EXISTS
子查询放在SELECT
列表中。
SELECT Name, ID_Dir, (
EXISTS (
SELECT 1
FROM `file` f
WHERE dir.ID_dir = f.fid_parent
)
OR (
SELECT 1
FROM `dir` d2
WHERE dir.ID_dir = d2.fid_parent
)
) AS children
FROM dir WHERE fid_parent IS NULL