涉及3个表的sql查询
我有3张桌子,就像:-涉及3个表的sql查询,sql,firebird,Sql,Firebird,我有3张桌子,就像:- Table_1 Table_2 Table_3 ------------------------ -------------------- -------------------- id bk_title strm_id bk_no bk_isbn s_id strm_name ----------------------- ------------
Table_1 Table_2 Table_3
------------------------ -------------------- --------------------
id bk_title strm_id bk_no bk_isbn s_id strm_name
----------------------- --------------------- -----------------------
1 A_Book 3 1 ISBN0001 3 Science
2 B_Book 4 1 ISBN0002 4 History
2 ISBN0003
我想把记录作为
BK_Title Num_Copies Stream
---------------------------------------
A_Book 2 Science
B_Book 1 History
我该怎么做。请给出建议。试试这个:
SELECT BK_Title, COUNT(Table_2.bk_isbn) AS Num_Copies, Table_2.strm_name AS Stream
FROM Table_1
JOIN Table_2 on (Table_1.id = Table_2.bk_no)
JOIN Table_3 on (Table_1.strm_id = s_id)
GROUP BY BK_Title, strm_name
ORDER BY BK_Title
这是一个包含两个联接和一个group by的基本查询。感谢领先和向下投票。但是,选择a.BK_TITLE,将(*)计数为num_副本,c.strm_name from table_1 a JOIN table_2 b On a.id=b.BK_no JOIN table_3 c On a.strm_id=c.strm_id group by a.BK_TITLE不编译。我不投反对票。谢谢@alxdroidev的回答。