je événements, events_styles, events_formats tables (un événement peut avoir de nombreux styles et de nombreux formats) Je suis en train de filtrer les événements qui ont un events_styles rejoindre et events_formats rejoindre. Ainsi, la requête doit sélectionner tous les événements qui sont un style particulier et un format particulier - mes tentatives jusqu'à présent:MySQL multiples plusieurs à plusieurs jointures
SELECT * FROM events
JOIN events_styles ON events.id = events_styles.event_id
JOIN events_formats ON events.id = events_formats.format_id
WHERE events_styles.style_id = 3 AND events_formats.format_id = 1;
Empty set (0.00 sec)
SELECT * FROM events_styles
WHERE events_styles.style_id = 3
+----------+----------+
| event_id | style_id |
+----------+----------+
| 3 | 3 |
| 2 | 3 |
| 4 | 3 |
+----------+----------+
3 rows in set (0.00 sec)
SELECT * FROM events_formats
WHERE events_formats.format_id = 1
+----------+-----------+
| event_id | format_id |
+----------+-----------+
| 1 | 1 |
| 3 | 1 |
| 4 | 1 |
+----------+-----------+
3 rows in set (0.00 sec)
La première requête doit retourner l'événement avec l'ID 4? Je suis sûr que j'ai besoin de combiner la deuxième et la troisième requête dans une sous-requête, mais je ne suis pas sûr de la syntaxe - merci
Vous allez vous lancer; votre condition de jointure events.id = events_formats.format_id devrait être events.id = events_formats.event_id – dash