Имеют ли два столбца одинаковое значение? SQLite - PullRequest
0 голосов
/ 12 января 2019

В двух столбцах одной и той же таблицы (idParent1 и idParent2) я хочу знать, есть ли два одинаковых идентификатора в какой-либо строке (а не только в одной строке). Если есть равные значения (в любой строке), я хочу получить эти идентификаторы.

Я пытаюсь это безуспешно.

SELECT idParent1
FROM
Person
WHERE
Person.idParent1 IN Person.idParent2;

Я получаю сообщение об ошибке: нет такой таблицы: Person.idParent2

Пример:

sqlite> CREATE TABLE Person(
ID INT PRIMARY KEY     NOT NULL,
Parent1           INT    NOT NULL,
Parent2            INT     NOT NULL,
);

INSERT INTO Person (ID,Parent1,Parent2)
VALUES (1, 2,3);
INSERT INTO Person (ID,Parent1,Parent2)
VALUES (2, 5,6);
INSERT INTO Person (ID,Parent1,Parent2)
VALUES (3, 7,5);
INSERT INTO Person (ID,Parent1,Parent2)
VALUES (9, 10,12);
INSERT INTO Person (ID,Parent1,Parent2)
VALUES (45, 2,3);

В этом примере 5 часто встречается в Parent1 и Parent2. Я хочу идентифицировать все значения как 5 присутствуют в обоих столбцах

Ответы [ 2 ]

0 голосов
/ 12 января 2019

Если вы хотите проверить только для idParent1:

SELECT idParent1
FROM
Person
WHERE
  Person.idParent1 IN (
    SELECT 
      idParent2 
    FROM
      Person
  );

или

SELECT idParent1
FROM
Person AS p
WHERE EXISTS (SELECT 1 FROM Person WHERE Person.idParent2 = p.idParent1);

Аналогичное решение может применяться к idParent2.

0 голосов
/ 12 января 2019

Ваш синтаксис неверный. Правильный синтаксис:

SELECT idParent1 FROM Person WHERE idParent1 IN (SELECT idParent2 FROM Person)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...