MySQL은 첫 번째 테이블의 필드 값을 두 번째 테이블의 필드 값으로 대체하면서 두 테이블을 선택합니다.

에밀 아브라모프

간단한 버스 티켓 예약 시스템을 구축하고 있는데 다음과 같은 문제에 직면 해 있습니다. 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  |
                      +--+-----------+---------+-------------+------------+

따라서 보시다시피 destinationslines테이블에 작성된 의 ID를 사용합니다 .dest_fromdest_to

응용 프로그램의 인터페이스는 사용자가 출발 지점과 도착 지점을 선택 할 수 있으며 클릭 한 후 응용 프로그램에있다 "검색" SELECT * FROM lines어디 dest_fromdest_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] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관