Возвращаемый столбец, указывающий на существование строки в другой таблице - PullRequest
0 голосов
/ 01 декабря 2010

sqlite3

У меня есть две таблицы, Table1 и Table2.

Обе эти таблицы имеют столбец с именем Name.

Я хотел бы запросить Table2 и вернутьИмя столбца.Кроме того, я хотел бы вернуть столбец, содержащий значения 1 или 0, в зависимости от того, содержат ли какие-либо строки в Таблице одно и то же значение для имени.

Какой самый эффективный способ сделать это?

Я ищу что-то вроде:

SELECT
  Name, IF EXISTS (SELECT * FROM Table1 WHERE Table1.Name = Table2.Name) 1 ELSE 0
FROM
  Table2

1 Ответ

1 голос
/ 01 декабря 2010

Извините, я не очень знаком с SQLite, но это должно работать для вас.Хитрость заключается в левом внешнем объединении и сравнении в объединенной таблице.

SELECT
    Table2.Name,
    CASE WHEN Table1.Name IS NOT NULL THEN 1 ELSE 0 END
FROM
    Table2
LEFT OUTER JOIN
    Table1 ON Table1.Name = Table2.Name

Я не уверен, что синтаксис CASE лучший, но если вы лучше знакомы с условными выражениями в SQLite, вы можете очиститьэта часть вверх.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...