2015-11-17 45 views
0

我有2個表(A和B)和另一個(C)是這兩個表之間的映射表。SQLite查詢3表

我要選擇A和B,其中A.id映射與任何B.id.的所有列

事情是這樣的:

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

[MCVE]規則適用於SQL問題太。共享您擁有的表格結構以及迄今爲止嘗試過的內容。你可以準備http://sqlfiddle.com。 – lad2025

+0

@ lad2025 - 我已更新我的問題。謝謝 –

回答

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

+0

非常感謝,選擇查詢是關鍵。我不太習慣SQL查詢,但是你救了我。謝謝! –

+0

我已經實現它,像一個魅力:) –

+0

@AlexandruCircus很高興聽到它。 – lad2025

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 
+1

表3(C)在哪裏? –

+0

實際上,問題中的表C是** A和B之間的映射表**。恐怕你不明白這個問題。 –