내가이 (가)이 LEFT JOIN
(UNION ALL
을 제안하지 마십시오)를 사용하여 다음을 수행 할 같은 테이블는 MySQL의 조건
SELECT o.*, s.col1, s.col2 FROM order o
INNER JOIN user u ON o.user_id = u.id
IF o.date less than '2011-01-01'
JOIN subscribe s ON u.key = s.key
ELSE
JOIN subscribe s ON u.email = s.email
END IF;
를 사용하여 가입 나는이 그러나 그것을 테스트 할 수 없습니다 다음 사용.
SELECT o.*, COALESCE(s1.col1,s2.col1) AS
col1, COALESCE(s1.col2, s2.col2) AS col2
FROM order o INNER JOIN user u ON o.user_id = u.id
LEFT JOIN subscribe s1 ON
(u.key LIKE (CASE o.date >= '2011-01-01 00:00:00'
WHEN TRUE THEN s1.key ELSE NULL END))
LEFT JOIN subscribe s2 ON (u.email LIKE (CASE o.date <
'2011-01-01 00:00:00' WHEN TRUE THEN s.email
ELSE NULL END));
내가 잘못하면 저를 시정하십시오.
감사합니다. 당신은 두 번 가입 할 필요가 없습니다
코드를 테스트 할 수없는 원인은 무엇입니까? –
테스트 환경 설정이 없기 때문에 – arun