作者bobju (宝贝猪)
看板Database
标题Re: [SQL ] 有关於 left join 的语法
时间Tue Feb 3 09:58:46 2009
你在问题当中的用词似乎有点模糊, 我假设你的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
1F:推 vvbird:谢谢... 02/04 01:59