mysql - 如何返回外键存在信息来选择结果?

标签 mysql select exists

我有一个疑问:

    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 作为子项”中移动该信息来代替 999? 我想在该位置返回(0 或 1)异或 bool 值作为 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

关于mysql - 如何返回外键存在信息来选择结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59656988/

相关文章:

mysql - 是否有可能从 hibernate native sql 查询获取多个列表?

html - 单选 HTML 列表框高度

html - 如何只选择同名的第一个 div?

mysql - ERROR 1064 (42000) 即使在教科书代码中

mysql - magento 无法重新索引产品属性

MySQL IF EXISTS UPDATE ELSE INSERT - 完整 SQL 示例(不重复)

c++ - 可变参数模板 : how can I check if a specific class is part of the pack, 并在该类存在时执行该类的特定方法

Objective-C 。在不存在的路径上创建文件?

mysql - SELECT 将检查超过 MAX_JOIN_SIZE 行

MySQL INSERT INTO ... SELECT 抛出错误 1064