저는 포럼에서 일하고 있으며, 모든 포럼과 마찬가지로 스레드와 응답이 있습니다.SQL에서 동적 if 문을 수행하는 방법은 무엇입니까?
post
------------
id
user_id
time
type
effective_id
thread
------------
id
update_time
text
response_number
deleted
response
------------
id
container_id
text
deleted
post.type
는 enum('thread', 'response')
이며, post.effective_id
는 post.type
가 표시 무엇에 따라 thread.id
또는 response.id
일치해야합니다 : 이들은 내가 그들을 저장하는 데이터베이스에서 사용하는 테이블입니다.
여러분도 알다시피, 나는 스레드와 응답이 공통으로 가지고있는 모든 것을 분해하고 있습니다. 여기
내가 직면 한 문제입니다 : 나는 주어진 게시물 삭제 여부를 결정하려는 포스트 테이블에
deleted
필드를 이동하지 않고
단일 쿼리 및
(이 정보로 id
의 필요) . 주어진 id가 스레드 또는 응답에 속하는지 미리 알고있는 경우 사용할 쿼리입니다.
SELECT thread.deleted
FROM post INNER JOIN thread ON post.effective_id = thread.id
또는
SELECT response.deleted
FROM post INNER JOIN response ON post.effective_id = response.id
하지만, "if the post.type is thread then INNER JOIN with thread and get the deleted field, if post.type is response then INNER JOIN with response and get the delete field.
"SQL에서 어떻게 말할 수 있습니까? 어떤 종류의 동적 인 "if"가 필요할 것입니다.
지정한 조건에서이 작업을 수행 할 수 있습니까?
감사합니다.
이 정확히 내가 감사, 무엇을 찾고 있었다! – federicot