2014-02-13 1 views
0

현재 테이블의 열이 특정 값과 같으면 다른 테이블에 가입하려고합니다. (ENUM 타입)조건이있는 다른 테이블에 가입하십시오.

예를 들어, 내가 경우에만 status = 그룹

뭔가 같은 테이블 groups에 가입 할

(공공, OnlyMe, 친구, 그룹)의 4 개 종류가있는 status 열을 가정 이.

이것은 mysql 구문이 아닙니다.

SELECT * FROM posts WHERE (status = Public OR status = OnlyMe OR status = Friend) 
OR (IF(status=Group) JOIN groups) 

어떻게하면 MySQL에서 할 수 있습니까? 이 같은

+0

을 - 당신이 사람들을 위해 결과에 행을 싶지 않습니다, 또는 해당 행의 조인 된 열에 'NULL'값이 있습니까? – TypeIA

+1

내가 원하는 것은 LEFT OUTER JOIN입니다. 'SELECT * FROM posts LEFT JOIN groups ON status = 그룹과/* 당신의 조인 조건 * /'과 같은 것. – user2989408

답변

0

뭔가 (나는 당신의 테이블에 대한 몇 가지 열 이름을 만든) : 당신은`status` 뭔가 다른 경우 발생 원하는 작업

SELECT p.id, p.status, p.text, g.name 
FROM posts p 
    LEFT OUTER JOIN groups g 
     ON (p.status = 'Group' AND p.groupId = g.id); 
+0

그래서 '그룹'이 문자열이라고 생각하지 않습니까? ;-) – Strawberry

+0

@Strawberry 잘 모르겠다. 나는 OP의 스키마가 없다. 아마도 그는 그 부분을 스스로 알아낼 수있을 것입니다. – TypeIA