Sqlite 两列的值相等吗?数据库
在同一个表idParent1和idParent2的两列中,我想知道是否有任何两个相等的ID在任何行中,而不仅仅是在同一行中。如果任何一行中的值相等,我希望获得这些ID 我试过了,但没有成功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
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);