간단한 버스 티켓 예약 시스템을 구축하고 있는데 다음과 같은 문제에 직면 해 있습니다. MySQL 데이터베이스에 두 개의 테이블이 destinations
있고 lines
. 이것이 그들의 구조입니다.
+------------------+ +---------------------------------------------------+
| destinations | | lines |
+--+---------------+ +--+-----------+---------+-------------+------------+
|id| name | |id| dest_from | dest_to | depart_time | drive_time |
+--+---------------+ +--+-----------+---------+-------------+------------+
|1 | Boston | |1 | 1 | 2 | 08:00 | 06:00:00 |
|2 | New York City | |2 | 1 | 3 | 08:00 | 04:00:00 |
|3 | Chicago | |3 | 1 | 4 | 08:00 | 04:00:00 |
|4 | Miami | |4 | 2 | 1 | 13:00 | 06:00:00 |
+--+---------------+ |5 | 2 | 3 | 13:00 | 06:00:00 |
|6 | 2 | 4 | 13:00 | 04:00:00 |
|7 | 3 | 1 | 11:00 | 04:00:00 |
|8 | 3 | 2 | 11:00 | 06:00:00 |
|9 | 3 | 4 | 11:00 | 06:00:00 |
|10| 4 | 1 | 09:00 | 04:00:00 |
|11| 4 | 2 | 09:00 | 04:00:00 |
|12| 4 | 3 | 09:00 | 06:00:00 |
+--+-----------+---------+-------------+------------+
따라서 보시다시피 및 destinations
의 lines
테이블에 작성된 의 ID를 사용합니다 .dest_from
dest_to
응용 프로그램의 인터페이스는 사용자가 출발 지점과 도착 지점을 선택 할 수 있으며 클릭 한 후 응용 프로그램에있다 "검색" SELECT * FROM lines
어디 dest_from
와 dest_to
사용자가 선택한 대상을, 동일.
그래서 내 질문은 : 단일 SQL 쿼리로 두 테이블을 선택하고 "연결"하는 방법입니다. 그러면 다음과 같은 결과를 얻을 수 있습니다 Line number 1, from Boston to New York City, departs at 08:00 from Boston and will be in New York City at 14:00.
(08:00 + 06:00 시간 = 14:00).
사용해야 JOIN
하며 그렇다면 쿼리가 어떻게 표시되어야합니까?
미리 감사드립니다!
같은 테이블 대상으로 두 개의 내부 조인을 만들 수 있습니다.
select d1.name as from_city, d2.name as to_city from lines
inner join destinations d1 on d1.id = lines.dest_from
inner join destinations d2 on d2.id = lines.dest_to
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다