J'ai trois tables.using where et jointure interne dans mysql
emplacements
ID | NAME | TYPE |
1 | add1 | stat |
2 | add2 | coun |
3 | add3 | coun |
4 | add4 | coun |
5 | add5 | stat |
écoles
ID | NAME
1 | sch1
2 | sch2
3 |sch3
school_locations
ID |LOCATIONS_ID |SCHOOL_ID
1 | 1 |1
2 | 2 |2
3 | 3 |3
Voici la table loc ations contient tous les emplacements de l'application. Les localisations pour l'école sont appelées par ID.
quand j'utilise la requête
select locations.name from locations where type="coun";
il affiche les noms de type "Coun"
Mais je veux afficher locations.name où seuls ont school_locations type = "Coun"
i essayé les requêtes suivantes, mais aucune ne semble fonctionner
select locations.name
from locations
where type="coun"
inner join school_locations
on locations.id=school_locations.location_id
inner join schools
on school_locations.school.id=schools.id;
etEst-il possible d'utiliser plusieurs jointures internes dans les requêtes, ou y a-t-il une autre manière?
sont les contre-apostrophes nécessaires dans msql? –
non, mais je les aime là, il évite les problèmes avec des noms de table ou de colonne étranges (par exemple select, count, a% b, etc.) et est plus infaillible – knittl
Il rend aussi malheureusement la requête non-ANSI , provoquant potentiellement des problèmes si vous essayez de migrer la requête vers une autre base de données. La bonne façon de délimiter les identifiants est avec "doublequotes", mais MySQL ne supporte pas cela par défaut; vous devez définir ANSI_QUOTES dans SQL_MODE pour l'obtenir. Bien sûr, cela met alors en erreur votre chaîne littérale "coun", qui devrait être écrite avec des guillemets simples indépendamment de SQL_MODE. – bobince