Üç tablom var.mysql içinde nerede ve iç birleştirme kullanarak
yerleri
ID | NAME | TYPE |
1 | add1 | stat |
2 | add2 | coun |
3 | add3 | coun |
4 | add4 | coun |
5 | add5 | stat |
okullar İşte
ID |LOCATIONS_ID |SCHOOL_ID
1 | 1 |1
2 | 2 |2
3 | 3 |3
tablo loc
ID | NAME
1 | sch1
2 | sch2
3 |sch3
school_locations Ations, uygulamanın tüm konumlarını içerir. Okul için yerler ID'ler tarafından çağrılır.
i sorgu kullandığınızda
select locations.name from locations where type="coun";
o tip "ülkeleri"
ile adlarını görüntüler Ama sadece school_locations type = "coun" sahip olduğu locations.name görüntülemek istediğiniz
i sorguları yapmak istedim, ama hiçbiri
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;
veçalışıyor görünüyor
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";
o iç sorguları katılır birden kullanmak mümkündür, ya da başka bir yol var? SELECT Locations.Name, Schools.Name
FROM Locations
INNER JOIN School_Locations ON School_Locations.Locations_Id = Locations.Id
INNER JOIN Schools ON School.Id = Schools_Locations.School_Id
WHERE Locations.Type = "coun"
Okula ardından School_Locations için Yerler ve School_Locations katılabilirsiniz:
backticks mSQL ihtiyaç vardır? –
hayır, ama ben onları orada gibi istiyorum, garip tablo veya sütun adları (örneğin, select, count, a% b, vb) ile sorunları önler ve daha kusursuz – knittl
Ayrıca, ne yazık ki, ANSI uyumlu olmayan sorgu yapar Sorguyu başka bir veritabanına geçirmeyi denerseniz, sorunlara neden olabilir. Tanımlayıcıları sınırlamanın uygun yolu "çift tırnak" ile yapılır, ancak MySQL bunu varsayılan olarak desteklemez; Bunu elde etmek için SQL_MODE'de ANSI_QUOTES ayarlamalısınız. Tabii ki daha sonra, SQL_MODE 'un bağımsız olarak tek tırnak işareti ile yazılması gereken dizginizdeki "coun" kelimesini karıştırır. – bobince