Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sqlite 两列的值相等吗?数据库_Sqlite - Fatal编程技术网

Sqlite 两列的值相等吗?数据库

Sqlite 两列的值相等吗?数据库,sqlite,Sqlite,在同一个表idParent1和idParent2的两列中,我想知道是否有任何两个相等的ID在任何行中,而不仅仅是在同一行中。如果任何一行中的值相等,我希望获得这些ID 我试过了,但没有成功 SELECT idParent1 FROM Person WHERE Person.idParent1 IN Person.idParent2; 我得到的错误是:没有这样的表:Person.idParent2 例如: sqlite> CREATE TABLE Person( ID INT PRIMAR

在同一个表idParent1和idParent2的两列中,我想知道是否有任何两个相等的ID在任何行中,而不仅仅是在同一行中。如果任何一行中的值相等,我希望获得这些ID

我试过了,但没有成功

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这样的所有值

您的语法不正确。正确的语法是:

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

如果只想检查idParent1:


类似的解决方案也适用于idParent2。

请提供ddl和示例数据Qlite。。。我将提供一个样本数据
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);