Sql Oracle:与group by的多个联接

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

我对SQLs不是很熟悉。我在用甲骨文

以下是示例表:

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