Also, ich habe drei Tabellen für einen Dienst, Tickets für Veranstaltungen verkauft:Ist es notwendig, hier ein Double COUNT zu verschachteln?
Event(id)
Ticket(id, venue_id, seller_id)
Venue(id, event_id)
Seller(id)
Und ich möchte für jedes Ereignis erfassen, die ich habe, wie viele Verkäufer (Typ 1) gibt, die haben nur Ticket zum Verkauf (und damit das Ticket zum entsprechenden Event gehört). Wie
Event_id; First_time_sellers
2814;3
3092;24
124;1
...
Ich habe dies mit zwei Abfragen versucht, beiden Fehler immer zu falschen Ergebnissen
SELECT event_id,
COUNT(DISTINCT rookie_seller)
FROM
(SELECT event_id,
rookie_seller,
tickets
FROM
(SELECT DISTINCT event.id AS event_id,
seller.id AS rookie_seller,
COUNT(DISTINCT ticket.id) AS tickets
FROM ticket
JOIN venue ON ticket.venue_id = venue.id
JOIN event ON venue.event_id = event.id
JOIN seller ON ticket.seller_id = seller.id
WHERE seller.type = 1
AND ticket.isforsale = 1
GROUP BY rookie_seller) a
WHERE tickets = 1) b
GROUP BY event_id
und
SELECT event.id,
a.seller_id,
a.tickets
FROM ticket
JOIN (
SELECT seller.id AS seller_id,
COUNT(DISTINCT ticket.id) AS tickets
FROM ticket
JOIN seller ON ticket.seller_id = seller.id
WHERE seller.type = 1
AND ticket.isforsale = 1
GROUP BY seller_id) a ON ticket.seller_id = a.seller_id
JOIN venue ON ticket.venue_id = venue.id
JOIN event ON venue.event_id = event.id
WHERE a.tickets = 1
Ich bin wirklich nicht sicher, was das Problem ist. die Verbindungen sollten in Ordnung sein, und die Bedingungen auf der Zählung auch, richtig?
Danke für jeden Ratschlag :)
Bitte geben Sie Ihre Beispieldaten, das Ergebnis erhalten Sie und erwartete Daten – Viki888