다음 테이블이 있습니다.
항공편 : id, idcompany, idplane, fromCity, toCity, takeoff ...
회사 : 아이디, 이름
비행기 : ID, 이름
도시 : 아이디, 이름
동일한 쿼리에서 두 도시의 이름을 "fromCity, toCity"로 선언하고 싶습니다.
이 작업의 목적은 도시 이름을 한 번에 가져 오는 것이므로 도시 이름을 가져 오기 위해 다른 쿼리를 수행 할 필요없이 클라이언트에 표시 할 수 있습니다.
내 시도는 다음과 같습니다.
SELECT f.id, f.takeoff, f.arrival, ct.name as fromCity, f.toCity, c.name as company, p.name as plane
FROM flights f, companies c, planes p, cities ct
WHERE f.idCompany = c.id AND f.idPlane = p.id AND f.fromCity = ct.id
ORDER BY f.takeoff ASC
이 쿼리는 "fromCity"의 이름을 반환하지만 "toCity"의 ID를 반환하므로 동일한 쿼리로 두 이름을 얻으려면 어떻게해야합니까?
이것을 사용할 수 있습니다.
SELECT
f.id, f.takeoff, f.arrival, ct1.name as fromCity
,ct2.name as toCity, c.name as company, p.name as plane
FROM
flights f
inner join
companies c
on
f.idCompany = c.id
inner join
planes p
on
f.idPlane = p.id
inner join
cities ct1
on
f.fromCity = ct1.id
inner join
cities ct2
on
f.toCity = ct2.id
ORDER BY
f.takeoff ASC;
그리고 지금부터는 이전 스타일 조인 을 사용하지 마십시오 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다