2013-05-25 4 views
0

중요한 날짜를 저장하는 테이블이 있습니다.테이블의 열에 따라 테이블 조인

enter image description here

importantDateType 열은 1 또는 2 중 어느 하나가이 프런트 엔드에있는 드롭 인 것을들 수있다.

  • 1 => 유권자 부문
  • 2 => 마을

나는 유권자 부문 & 마을 정보를 저장하기 위해 별도의 두 테이블이 있습니다. 내가하는 것은 importantDateParent에있는 상점은 유언자 부 또는 마을 중 하나의 ID입니다.

특정 레코드의 importantDateType이 1 인 경우 중요한 날짜 테이블은 선거구 구분 테이블에 가입하고 선거구 본부의 이름을 받아야합니다. 특정 레코드의 importantDateType이 2이면 중요한 날짜 테이블이 Village 테이블과 결합하여 Village의 이름을 가져야합니다. 내가 지금 사용하고 무엇

내가 tbl_elecdivision처럼 두 개의 열을 가지고 싶지 않아

SELECT `tbl_importantdates`.*, 
     `tbl_elecdivision`.`elecDivName`, 
     `tbl_villages`.`villageName` 
FROM (`tbl_importantdates`) 
LEFT JOIN `tbl_elecdivision` ON `tbl_importantdates`.`importantDateParent` = `tbl_elecdivision`.`elecDivID` 
LEFT JOIN `tbl_villages` ON `tbl_importantdates`.`importantDateParent` = `tbl_villages`.`villageID` 
WHERE `tbl_importantdates`.`status` = '1' 

입니다. elecDivNametbl_villages. villageName. importantDateTypeName 란 열을 importantDateType에 따라 선거구 구분 또는 마을 이름이 1 또는 2 인 경우 어떻게 할 수 있습니까?

답변

1

이 ... 당신이 케이스를 사용하려고했을 때 ... 당신의 선택 절에

당신이해야이 같은 :

select `tbl_importantdates`.*, 
case when importantdatetype = 1 then tbl_elecdivision.elecDivName, 
case when importantdatetype = 2 then tbl_villages. villageName 
else 'nothing' end name 
--.......rest of code your comes here 
+0

http://dev.mysql.com/doc/refman /5.0/en/control-flow-functions.html#operator_case – Techie

관련 문제