我的一个SQL请求出了问题,这是用子查询做的。
我正在尝试划分两个COUNT(*)
请求的结果:
SELECT (SELECT COUNT(*) FROM book) nb_books,
(SELECT COUNT(*) FROM author) nb_authors,
nb_books / nb_authors
(我的请求要复杂得多,我将其简化为示例)
但MySQL一直在告诉Unknown column nb_books in field list
。没有办法
让这个请求起作用吗?
感谢您的回答。
(PS:我的请求是由Doctrine从DQL生成的,因此定制它可能更困难。)
答案 0 :(得分:4)
两种选择:
SELECT (SELECT COUNT(*) FROM book) as nb_books ,
(SELECT COUNT(*) FROM author) as nb_authors,
(SELECT COUNT(*) FROM book) / (SELECT COUNT(*) FROM author)
或
SELECT nb_books, nb_authors, nb_books/nb_authors
FROM (
SELECT (SELECT COUNT(*) FROM book) nb_books,
(SELECT COUNT(*) FROM author) nb_authors
)
我更喜欢第二种方式。如果nb_authors可能等于0,则可能必须设置条件。