2012-03-04 3 views
0

데이터베이스에 두 개의 테이블이 있습니다.단일 문에서 여러 SQL 테이블 쿼리

하나는 이고 다른 하나는 room_booking이라고합니다.

두 객실과 방 예약에 같은 열이 있습니다. room_id.

나는 특정 날짜와 객실를 확인하는 다음과 같은 SQL 쿼리 초안을 작성했습니다

SELECT DISTINCT room_id FROM `room_booking` WHERE date_booked='$date'"; 

을하지만 지금은 room_booking의 정보를 각각의 객실에 액세스 할 아이디의 목록을 사용해야합니다. 내가 관심있는 분야는 이름이이고 room_size가입니다.

어떻게하면됩니까? 공동 SQL 문이 필요합니까?

미리 감사드립니다.

답변

2

예를 다음과 같이 JOIN 문을 사용해야합니다. 결과를 얻으려면 두 테이블 모두 Join을 사용해야합니다. 당신은 당신이 사용하지 않는 경우 여러 테이블에서 데이터를 가져 오는 경우 당신이 cartison 줄 것이다 조인

SELECT room_id FROM `room_booking` as rb,room as r WHERE date_booked='$date' and r.room_id=rb.room_id 

원하는대로 변경할 수 있습니다 당신은 잘못된 쿼리를 작성하는

SELECT r.roomid,r.room, r.room_size,date_booked 
FROM room as r left JOIN room_booking as rb ON r.room_id=rb.room_id 
WHERE date_booked='$date' 
+0

@Teez : ** 1) ** 각 테이블의 행을 에코하려면 어떻게해야합니까? 예를 들어'$ row [ 'room_id']'(두 테이블 모두에 있음)와'$ row [ 'date_booked']'(room_booking 테이블에 있음)을 사용하고 있습니까 ** 2) ** Where where date_booked 날짜가 '2012-01-01'형식 인 경우 <> '$ date' '도 사용할 수 있습니까? – methuselah

+1

@methuselah : 1) 예, $ row [ 'room_id']와 $ row [ 'date_booked']를 사용해야하지만 select 절에서 지정해야합니다 .2) 예. 작동합니다. –

2

예, 당신은

$query="SELECT DISTINCT room, room_size FROM room JOIN `room_booking` ON room.room_id=`room_booking`.room_id WHERE date_booked='$date' "; 
0

아래

시도 데이터의 산출물.