Nasıl birden çok sütun üzerinde bir İÇ BİRLEŞİM yapmak
Üzerinde çalışıyorum bir ödev projesi ve yaşayacağım, bir veritabanı sorgusu gerçekleştirmek için hangi bulur uçuşlar ya da şehir adı veya havaalanı kodu, ama flights
tablo içerir havaalanı kodları eğer öyleyse istiyorum arama yapmak için şehir için Facebook'a katıl üzerinde airports
tablo.
Havaalanları tablo aşağıdaki sütunları: code, city
Uçuşlar tablo aşağıdaki sütunları: airline, flt_no, fairport, tairport, depart, arrive, fare
Sütun fairport
tairport
vardırdanveiçinhavaalanı kodları.
Sütunlar depart
arrive
kalkış ve varış tarihleri.
İlk fairport
sütun uçuşlar ve airports.code
sütunu birleştiren bir sorgu ile geldim. Sırada bana tairport
maça bir önceki maçta katılın ilk gerçekleştirmek için var katılın.
SELECT airline, flt_no, fairport, tairport, depart, arrive, fare
FROM (SELECT * FROM flights
INNER JOIN airports
ON flights.fairport = airports.code
WHERE (airports.code = '?' OR airports.city='?')) AS matches
INNER JOIN airports
ON matches.tairport = airports.code
WHERE (airports.code = '?' OR airports.city = '?')
Benim sorgu doğru sonuç verir ve ödev amacı için yeterli olacaktır, ama eğer 15 ** birden çok sütun miyim, merak ediyorum? Nasıl kalkış ve varış şehir/kodu eşleşmesi WHERE
yan inşa miyim?
Aşağıda bir "pseudo-sorgu" ne istersem yapacağını, ama yapamam sözdizimi doğru ve bilmiyorum nasıl temsil airports
tablo için gidiş ve hedefleri:
SELECT * FROM flights
INNER JOIN airports
ON flights.fairport = airports.code AND flights.tairport = airports.code
WHERE (airports.code = 'departureCode' OR airports.city= 'departureCity')
AND (airports.code = 'destinationCode' OR airports.city = 'destinationCity')
Güncelleme
Ben de this visual representation of SQL Join statements bulunduçokyararlı genel bir kılavuz olarak SQL deyimleri oluşturmak için nasıl!
CEVAP
Birleştirilen tablolar alias aşağıdaki örnekte olduğu gibi: bir vererek aynı tablo ile birden fazla kez katılabilirsiniz
SELECT
airline, flt_no, fairport, tairport, depart, arrive, fare
FROM
flights
INNER JOIN
airports from_port ON (from_port.code = flights.fairport)
INNER JOIN
airports to_port ON (to_port.code = flights.tairport)
WHERE
from_port.code = '?' OR to_port.code = '?' OR airports.city='?'
to_port
from_port
airports
tablonun ilk ve ikinci kopya için takma ad olduğunu unutmayın.
Nasıl (ya da ben) birden çok sütun üze...
Nasıl MySQL birden çok sütun benzersiz...
Nasıl nrepl-ritz-jack-in yapmak işe uz...
nasıl sütun benzersiz yapmak ve Raylar...
Nasıl Javascript tam ekran windows (tü...