Il existe des tables avec des clients et des festivals. Chaque festival a lieu chaque année (comme le Nouvel An). Mais tous les clients ne sont pas invités à un festival.Plusieurs tables de sélection SQL
J'ai besoin de clients féminins, qui ont été invités sur festival1 en ce moment, mais qui n'ont pas été invités sur festival2.
Table "clients"
+-----+--------------+-----------+---------+-----+
| id | name | email | adress | sex |
+-----+--------------+-----------+---------+-----+
| 1 | Ivan | [email protected] | NY city | m |
| 2 | Michael | [email protected] | LA | m |
| 3 | Anna | [email protected] | LA | w |
| ...
+-----+--------------+-----------+---------+-----+
Table festivals
+-----+------------+-------+
| id | name | date |
+-----+------------+-------+
| 1 | festival1 | 8-03 |
| 2 | festival2 | 23-02 |
| 3 | festival3 | 1-01 |
| ...
+-----+------------+-------+
Talbe "invitations"
+--------+----------+------+
| client | festival | year |
+--------+----------+------+
| 1 | 2 | 2013 |
| 3 | 1 | 2009 |
| ...
+--------+----------+
j'ai commencé à faire quelque chose comme cette requête, mais il est nécessaire de corriger:
SELECT name
FROM clients, festivals, invitations
WHERE clients.sex = w
AND festivals.name = festival1
AND clients.id = invitations.client
AND invitations.year = 2013
Pouvez-vous être plus précis sur ce que est faux avec votre requête? Qu'attendiez-vous et qu'as-tu obtenu à la place? –
Non lié, mais bien que la syntaxe de jointure que vous utilisez ne soit pas fausse, elle est obsolète depuis plus de 20 ans et a été remplacée dans ANSI 92 par des jointures explicites. Aaron Bertrand a fait un bien meilleur cas que je pourrais ici pour passer à la nouvelle syntaxe de jointure http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old -style-joins.aspx – GarethD