2013-05-16 3 views
0

제 SQL 쿼리에서 다른 매개 변수를 확인하고 있습니다. 삽입 된 트립 코드에 대한 각 테이블의 데이터가있을 때 이상한 일은 발생하지 않습니다. 그러나 하나의 테이블에 데이터가 없으면 데이터가 전혀 없습니다. 다른 테이블에 데이터가 있어도. 그래서 테이블에 데이터가 있는지 확인할 수 있어야합니다. 테이블에 데이터가 있는지 확인하려면 선택해야합니다.MYSQL SELECT : rowdata가 있는지 확인하십시오.

SELECT roadtrip_tblgeneral.*, 
GROUP_CONCAT(distinct roadtrip_tblhotels.hotel) as hotels, 
GROUP_CONCAT(distinct roadtrip_tbllocations.location) as locations, 
GROUP_CONCAT(distinct roadtrip_tbltransports.transport) as transports 
FROM roadtrip_tblgeneral 
INNER JOIN roadtrip_tblhotels 
ON roadtrip_tblgeneral.id = roadtrip_tblhotels.tripid 
INNER JOIN roadtrip_tbllocations 
ON roadtrip_tblgeneral.id = roadtrip_tbllocations.tripid 
INNER JOIN roadtrip_tbltransports 
ON roadtrip_tblgeneral.id = roadtrip_tbltransports.tripid 
WHERE roadtrip_tblgeneral.tripcode = :tripcode 
GROUP BY roadtrip_tblgeneral.id 

앞에있는 GROUP_CONCAT이있는 테이블 만 확인해야합니다. 이미 키워드 앞에 EXISTS를 시도했습니다.

미리 감사드립니다.

답변

1

INNER JOIN 키워드는 두 테이블에 적어도 하나의 일치가있을 때 행을 반환합니다. 데이터가 없으면 LEFT JOIN 또는 FULL JOIN을 사용하려고합니다.

+0

덕분에, LEFT 일을셨습니까 바로 테이블에 일치하는 행이없는 경우에도, 그것은 왼쪽에있는 테이블에서 모든 데이터를 반환로 사용 될 것입니다 가입 할 수 있습니다. 특정 결과에 데이터가 없으면 null 만 리턴합니다. – user2381011

0

왼쪽

관련 문제