Alias ​​oszlopok és táblák (sql - a leckét a kurzus)

Alias ​​oszlopok és táblák (sql - a leckét a kurzus)

Bizonyos helyzetekben az oszlopok és táblák a MySQL sokkal könnyebb kezelni, más neveken. Úgy véljük, ez a fellépés a példa adatbázis jegyek.

Információ járatokról a légitársaság által nyújtott képviselteti formájában két asztal - repülési és Sity. Minden bejegyzés a repülési táblázat azt mutatja tájékoztatást az adott járat: az indulás helye (origincityid oszlop), a cél (destinationcityid oszlop), és a dátum és az indulás, a repülőgép típusa, járatszám és a jegyek árára (többi oszlop). A város táblázat egy listát az összes városok, ahol a járatok sor. Így oszlopok és origincityid destinationcityid járat tábla lesz csak azonosítókat hivatkozó bejegyzéseket a város asztalra.

Ahhoz, hogy a lista járatokat indító pontot, meg kell futtatni a következő lekérdezést:

Kérése, így a járatok jegyzéke célpontok, mint az előző:

Logikus feltételezni, hogy kiadási járatait a két pontot - indulási és célállomás - meg kell, hogy a kérelmet az alábbiakban ismertetjük.

Azonban, ha egyszer próbálja ki ezt, Import Import phpMyAdmin hibaüzenetet:
# 1066 - Nem egyedi asztal / alias: 'city'.

Miért történik ez? Dobd félre a várakozásokat, és próbálja megérteni, mit jelent valójában ez a kérés. Azt kérdezi MySQL- szerver egyesítés repülés asztalra. város és a város. Próbál csatlakozni kétszer ugyanahhoz az asztalhoz, és vezet egy hibaüzenetet.

Ezen túlmenően, a hiányzó logika a kérés érezhető. Ő megpróbálta, hogy a járat számát, a várost és a nevét a város (ismét kétszer) minden nyilvántartást sugárzás összehasonlítva egy azonosítót a táblázat oszlopainak origincityid város és destinationcityid. Más szóval, id város táblák és oszlopok origincityid destinationcityid és azonosnak kell lennie. Még ha a kérelem terhelés, annak eredménye lenne egy listát az összes járat, amelynek indulási és érkezési pontok azonosak. Alig van egy járat, amely illeszkedik a leírás, ha nem a légitársaság, mielőtt Laga festői járatok városok felett.

Meg kell gondolni, egy másik módja annak, hogy újra használni város asztalra. MySQL segítségével megszabadulni a zavart. Akkor vissza kell két különböző táblában minden eredmény: az egyik az indulás helye, a másik a cél. Jelentősen egyszerűsítené a helyzetet segítené a város két példányban a tábla (egy a neve eredetét és a többi -. Destination). De miért foglalkozik a támogatás két különböző listák azonos városokban? Oldja meg a problémát megadásával egy asztalt két egyedi alias város (ideiglenes név) belül egy lekérdezést.

Ha ezek után a tábla nevét a SELECT lekérdezés töredék. kulcsszóval kezdődő FROM. AS levelet becenevet, akkor kap egy ideiglenes nevet, amelyre hivatkozni lehet máshol a lekérdezés. Lásd az első kód mu kibocsátó járat számát és az indulási helyre, és jelzik az asztal alias város eredete:

Kérdés működik, mint korábban, és az eredmények ugyanaz marad, csak most lehetősége van arra, hogy cserélje ki a hosszú asztal nevek rövidebb. Ha álnéven helyett az f és repülési eredetű, és ennek megfelelően a felvételi volna jelentősen csökkent.

Térjünk vissza a problémás kérelmet. Most kétszer utalva a város tábla különböző beceneveket, akkor végezze el a hármas szövetség (amely két táblázat valóban az egyik), és hogy a kívánt eredményt:

Hasonlóképpen meghatározott álneveket oszlopokat. A mi esetünkben ez segít megkülönböztetni név oszlopok a döntő asztal:

Használja ezt a megközelítést, hogy adja hozzá a projekthez. Próbáld megvalósítani ezt az elképzelést függetlenül.