Sql Oracle:与group by的多个联接
我对SQLs不是很熟悉。我在用甲骨文 以下是示例表:Sql Oracle:与group by的多个联接,sql,oracle,Sql,Oracle,我对SQLs不是很熟悉。我在用甲骨文 以下是示例表: ----------------------- Table A: A_ID, A_NAME, A_Address ----------------------- Table B: A_ID, B_Name, ----------------------- Table C: B_Name, C_Title ----------------------- 输出应该是 一个身份证,一个名字,一个地址,计数(C_头衔) 每个B_名称对应C
-----------------------
Table A:
A_ID, A_NAME, A_Address
-----------------------
Table B:
A_ID, B_Name,
-----------------------
Table C:
B_Name, C_Title
-----------------------
输出应该是
一个身份证,一个名字,一个地址,计数(C_头衔)
每个B_名称对应C_标题(基本上是查找)
请引导
SELECT A_ID, A_Name, A_Address, Count(C_Title)
FROM TableA a
INNER JOIN TableB b ON a.A_ID = b.A_ID
INNER JOIN TableC c ON b.B_Name = c.B_Name
GROUP BY A_ID, A_Name, A_Address
这里,我认为表C中的BYNEX具有信誉值(因为它是一个外键),而B中的一个ByNeX的AyID是主键。< /P>您要B中的行数还是By量的和?您可能应该添加一些示例数据并显示一些失败的尝试。。也许这会让事情更清楚。我只需要计算一个连接中的行数,其中B在A_ID上,然后使用B_Name从C中查找B_Name
SELECT * FROM A;
A_ID A_NAME A_ADDRESS
---------- ---------- ----------
1 RAM MO
2 SITA MI
3 JANAKI IL
SELECT * FROM B;
A_ID B_NAME
---------- ----------
1 PAUL
1 KAPIL
2 DAVE
SELECT * FROM C;
B_NAME C_TITLE
---------- ----------
KAPIL HONDA
KAPIL MAZDA
KAPIL ODYSSY
DAVE BENZE
DAVE LIMOUSINE
SELECT a.A_ID, a.A_Name, a.A_Address, b.B_Name, Count(C_Title)
FROM A a
INNER JOIN B b ON(a.A_ID = b.A_ID)
INNER JOIN C c ON(b.B_Name=c.B_Name)
GROUP BY a.A_ID, a.A_Name, a.A_Address, b.B_Name;
A_ID A_NAME A_ADDRESS B_NAME COUNT(C_TITLE)
---------- ---------- ---------- ---------- --------------
2 SITA MI DAVE 2
1 RAM MO KAPIL 3