çözer. Bu yeni tablolar oluşturmaktan daha iyi bir veritabanı uygulamasıdır.
INNER JOIN anahtar sözcüğü, her iki tablonun sütunları arasında bir eşleşme olduğu sürece, her iki tablodaki tüm satırları seçer.
SELECT *
FROM divisions divis
INNER JOIN districts dis
ON dis.division_id = divis.id
INNER JOIN police_stations pol
ON pol.district_id = dis.id
Not: Eğer bölünmeleri tanımlamak için başka bir şey kullanmak zorunda Görünüşe DIV
kelime, mysql ayrılmıştır.
bu verilerle yeni bir tablo oluşturma konusunda ısrar ederseniz, CREATE TABLE AS
tarifi kullanabilirsiniz.
Bunu yapmak için orijinal şemamızı değiştirmemiz gerekir. Yeni tablolar yinelenen adlara sahip olamaz, bu yüzden orijinal tabloları tüm benzersiz sütunlara sahip olacak şekilde değiştirmeliyiz. Örneğin name
için
district_name
olur. İşte
CREATE TABLE combined AS (
SELECT divis.id, divis.division_name, dis.district_name, pol.police_name
FROM divisions divis
LEFT JOIN districts dis
ON divis.id = dis.division_id
LEFT JOIN police_stations pol
ON pol.district_id = dis.id
);
o
http://sqlfiddle.com/#!9/7ec3b/1/0
Bu çok kötü olsa veritabanı tasarımı olduğunu göstermeleri bir keman olduğunu. Benim ilk çözüm, tek bir tablo kullanma
Cevabınız için teşekkür ederiz.Ben sorgu hakkında sormuyorum, @Richard Hamilton –