我有两张桌子:
CREATE TABLE tbA (
columnA TEXT
)
和
CREATE TABLE tbB (
columnB TEXT
)
tbA
有以下记录:
A1
A2
A3
和
tbB
有以下记录:
B1
B2
B3
如何在两个表一对一匹配的情况下从两个表中检索记录?我的意思是,如果我在A1
中搜索ROWID
为tbA
的{{1}},则它与来自ROWID
的{{1}}的{{1}}匹配{{1} }}
到目前为止我尝试了什么:
tbB
但结果是:
B1
我只需要第一行(两个表中等于select * from tbA cross join tbB where columnA = "A1"
)而不是后续行;
答案 0 :(得分:0)
如果您接受创建新列,则可以轻松地逐个连接两个表的行。
CREATE TABLE tbA (id INTEGER PRIMARY KEY AUTOINCREMENT, columnA TEXT);
CREATE TABLE tbB (id INTEGER PRIMARY KEY AUTOINCREMENT, columnB TEXT);
INSERT INTO tbA (columnA) values ("A1");
INSERT INTO tbA (columnA) values ("A2");
INSERT INTO tbA (columnA) values ("A3");
INSERT INTO tbB (columnB) values ("B1");
INSERT INTO tbB (columnB) values ("B2");
INSERT INTO tbB (columnB) values ("B3");
SELECT tbA.columnA, tbB.columnB FROM tbA, tbB WHERE tbA.id=tbB.id;
A1|B1
A2|B2
A3|B3
答案 1 :(得分:0)
感谢您的帮助;
找到了;不将显式列声明为PRIMARY KEY并使用隐式rowid
列:
SELECT * FROM tbA, tbB WHERE tbA.columnA="A1" and tbA.rowid=tbB.rowid