1

サブクエリで作成された SQL 要求の 1 つに問題があります。

COUNT(*)2 つのリクエストの結果を分割しようとしています。

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 から生成されるため、カスタマイズするのは難しいかもしれません。)

4

1 に答える 1

4

2 つの選択肢:

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
)

私は2番目の方法を好みます。nb_authors が 0 になる可能性がある場合は、条件を設定する必要がある場合があります。

于 2011-04-11T12:15:35.103 に答える