Как вернуть информацию о существовании внешнего ключа для выбора результата? - PullRequest
0 голосов
/ 09 января 2020

У меня есть запрос:

    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 как children»? Я хочу вернуть (0 или 1) xor Boolean в этом месте как children.

1 Ответ

0 голосов
/ 09 января 2020

Поместить подзапрос 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
...