如何返回 foregin 密钥存在信息以选择结果?



我有一个查询:

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

相关内容

最新更新