だから私はこのクエリを持っています(これは本番用ではなく、パフォーマンスに関係なく管理上データベースからデータを取得するためのクエリです)
SELECT
`guests`.`id`,
CONCAT(u.`fname`, '', u.`lname`) "name",
`u`.`id` "u",
(SELECT COUNT(r.id) FROM reservations r WHERE r.guest_id=guests.id) "reservations",
(SELECT COUNT(t.id) FROM tasks t WHERE t.guest_id = guests.id) "tasks",
(SELECT COUNT(m.id) FROM scheduled_emails m JOIN reservations r ON (r.guest_id = `guests`.`id` AND m.reservation_id = r.id)) "emails",
`guests`.`created` "created",
`guests`.`updated` "updated"
FROM `guests`
JOIN `users` AS u ON u.`id` = `guests`.`user_id` LIMIT 0,25
そして、私は得る
#1054 - Unknown column 'guests.id' in 'on clause'
問題の原因となっている行は、3 番目のサブクエリです。
(SELECT COUNT(m.id) FROM scheduled_emails m JOIN reservations r ON (r.guest_id = `guests`.`id` AND m.reservation_id = r.id)) "emails",
ここで失敗する理由は誰にも分かりますか? つまり、エイリアスを使用していないということです。ゲストはテーブルの名前であり、最初の 2 つのサブクエリで問題なく読み取られます。3番目のサブクエリの違いは、JOINを使用していることです...何かアイデアはありますか? ありがとう