0
私はある期間に多くの予約を持つことができるユーザーがいます。各予約は複数の人を持つことができます。Mysql - 結合クエリの結果の合計
クエリは次のようになります。これは、人々の最後の予約番号で、1件の結果を返します
SELECT users.*,
(SELECT COUNT(person) FROM person_to_booking WHERE person_to_booking.booking = bookings.id) AS people_per_booking
FROM users
LEFT JOIN bookings ON users.id = bookings.user
GROUP BY users.id
。 GROUP BY
を削除した場合、その予約の人数が正しい4つの行が表示されます。
SUM()
がCOUNT(person)
である行が1つ必要です。どうすればこれを達成できますか?
EDIT
テーブルはそうのように構成されています
Users
id | name
---------
1 | Dave
2 | Bob
Bookings
id | user | company
-------------
1 | 1 | Big Group
2 | 1 | Big Group
3 | 2 | Small Company
Person to Bookings
id | person | bookings
----------------------
1 | 1 | 1
1 | 2 | 1
1 | 3 | 1
1 | 4 | 1
1 | 5 | 2
1 | 6 | 2
したがって、ユーザーは、彼らに対して予約を持つことができ、その後、予約が多くの人を持つことができます。
テーブルの構造を理解していれば...感謝を答えるために役立つことがあります。 – roetnig
@roetnigはサンプル構造を追加しました。 –
あなたの質問は何ですか?つまり、データからどのような結果を計算したいのですか? –