SQLite查询3个表

时间:2015-11-17 16:10:04

标签: sqlite

我有2个表( A和B ),另一个表( C )是这两个表之间的映射表。

我想从A和B中选择所有列,其中A.id与任何B.id映射。

这样的事情:

SELECT * FROM A, B WHERE A.id = C.A_id AND B.id = C.B_id

2 个答案:

答案 0 :(得分:1)

您的问题非常清楚,但请试试。

根据您发布的内容,我假设您想加入table_A - joining_table_c - table_b多对多关系):

CREATE TABLE #A(ID INT, name VARCHAR(100));
CREATE TABLE #B(ID INT, col VARCHAR(100));
CREATE TABLE #C(ID_a INT, ID_b INT);

INSERT INTO #A VALUES (1, 'aa'), (2,'bbb'), (3, 'ccc');
INSERT INTO #B VALUES (10, 'xxxx'), (11,'yyy'), (12, 'zzz');
INSERT INTO #C VALUES (1,10), (1, 11), (2, 12), (3, 10);

SELECT a.*, b.*
FROM #A a
JOIN #C c
  ON a.ID = c.ID_a
JOIN #B b
  ON b.ID = c.ID_b;

LiveDemo

答案 1 :(得分:0)

Select table1.*,table2.*,table3.*
form table1
inner join table2
on table2.table1_id=table1.id
inner join table3
on table3.table1_id=table1.id