Tengo tres tablas.usando donde y unión interna en mysql
localizaciones
ID | NAME | TYPE |
1 | add1 | stat |
2 | add2 | coun |
3 | add3 | coun |
4 | add4 | coun |
5 | add5 | stat |
escuelas
ID | NAME
1 | sch1
2 | sch2
3 |sch3
school_locations
ID |LOCATIONS_ID |SCHOOL_ID
1 | 1 |1
2 | 2 |2
3 | 3 |3
Aquí el loc mesa contiene todas las ubicaciones de la aplicación. Las ubicaciones para la escuela se llaman por ID.
cuando se utiliza la consulta
select locations.name from locations where type="coun";
que muestra los nombres con el tipo "coun"
Pero Quiero mostrar locations.name donde sólo tienen school_locations type = "coun"
i intentó siguientes consultas, pero ninguno parece estar funcionando
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;
y
select locations.name
from locations
inner join school_locations
on locations.id=school_locations.location_id
inner join schools
on school_locations.school.id=schools.id where type="coun";
¿es posible usar múltiples combinaciones internas en las consultas, o hay otra manera?
están los acentos abiertos necesarios en msql? –
no, pero me gusta tenerlos allí, evita problemas con nombres extraños de tabla o columna (por ejemplo, seleccionar, contar, a% b, etc.) y es más infalible – knittl
También, lamentablemente, hace que la consulta no sea compatible con ANSI , lo que podría causar problemas si intenta migrar la consulta a otra base de datos. La forma correcta de delimitar identificadores es con "dobles comillas", pero MySQL no admite esto por defecto; tienes que establecer ANSI_QUOTES en SQL_MODE para obtener eso. Por supuesto, eso arruina la cadena literal "coun", que debe escribirse sin tener en cuenta SQL_MODE con comillas simples. – bobince