推 vvbird:謝謝... 02/04 01:59
你在問題當中的用詞似乎有點模糊, 我假設你的index其實就是指
primary key. 要聯結A,B,C的話:
select A.a1,A.a2,B.b2,C.c2
from A
left join B on A.b = B.b1
left join C on A.c = C.c1;
這樣就行了.
若要聯結A,B,C,D,E的話, 可能會有問題. 因為A,B,C,E皆無外鍵(foreign key)
可聯結到D的主鍵(primary key), 所以底下只考慮聯結A,B,C,E:
select A.a1,A.a2,B.b2,C.c2,E.e2
from A
left join B on A.b = B.b1
left join C on A.c = C.c1
left join E on C.e = E.e1;
※ 引述《vvbird (vv)》之銘言:
: 先說一下, 我用的是 myqsl 5.0
: 我一共有 5 個資料表
: A表...
: int a1 <-- index
: int a2
: int b --> 連到 B 表的 b1
: int c --> 連到 C 表的 c1
: B 表
: int b1 <-- index
: int b2
: int d
: C 表
: int c1 <-- index
: int c2
: int e --> 連到 E 表的 e1
: D 表
: int d1 <-- index
: int d2
: E 表
: int e1 <-- index
: int e2
: **** 狀況一 ****
: 我要把 A 和 B 連在一起, 然後列出 A.a1, A.a2, B.b2
: 我知道, 可以利用
: select A.a1,A.a2,B.b2 from A left join B on A.b = B.b1;
: **** 狀況二 ****
: 我要把 A 和 C 和 E 連在一起, 列出 A.a1, A.a2, C.c2, E.e2
: select A.a1,A.a2,C.c2,E.e2 from A left join C on A.c = C.c1
: left join E on C.e = E.e1;
: 我的問題有二個...
: **** 問題一 ****
: 我要把 A 和 B、C 連在一起, 列出 A.a1, A.a2, B.b2, C.c2
: 接著是錯誤的..:<
: 錯一: select A.a1,A.a2,B.b2,C.c2 from A left join B,C on A.b=B.b1, A.c=C.c1;
: 錯二:
: select A.a1,A.a2,B.b2,C.c2 from A left join B on A.b = B.b1 left
: left join C on A.c = C.c1;
: 那正確的該怎麼辦呢?
: **** 問題二 ****
: 如果我連 D,E 也要連進來
: 也就是說 A.a1,A.a2,B.b2,C.c2,D.d2,E.e2
: 那我又該怎麼下 select?
: 有點亂, 不好意思
: 也謝謝你看完我的問題..m(_ _)m
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.74.193.210