2014-04-28 4 views
0

나는 4 가지 MySQL의 테이블,mysql 쿼리에 2 IN 절이있는 2 개의 내부 조인이 가능합니까?

SELECT node.created AS node_created, node.nid AS nid, node.title AS title 
FROM node 
INNER JOIN field_data_field_resume_education ON field_data_field_resume_education.entity_id = node.nid 
INNER JOIN 
    field_data_field_resume_of_study ON 
    field_data_field_resume_of_study.entity_id = 
    field_data_field_resume_education.field_resume_education_value 
INNER JOIN 
    field_data_field_resume_degree_level ON 
    field_data_field_resume_degree_level.entity_id = 
    field_data_field_resume_education.field_resume_education_value 
WHERE field_data_field_resume_degree_level.field_resume_degree_level_tid IN (4,7) 
AND field_data_field_resume_of_study.field_resume_of_study_tid IN (18,19,21) 
and (node.status = '1') 
AND (node.type IN ('resume_content ')) 
GROUP BY nid 
ORDER BY node_created DESC 

스피 IT 모두에 존재하는 유일한 공통의 값을 반환하도록 2 개 개의 다른 테이블에서 값을 얻으려고 노력했지만, 그냥 빈 쿼리를 반환합니다. 둘 다 공통 nodeid가 있는지 확인했습니다.

where 절에 2 개의 IN 절 조건을 사용할 수 있습니까?

코드에 무엇이 잘못 되었습니까?

+1

'resume_content'에 여분의 공간이 있습니다. –

+0

AND 대신 – Mihai

+0

을 사용하십시오. @juergend - 여분의 공간을 제거했으나 작동하지 않았 음을 확인했습니다. – user3506575

답변

0

node.type IN ('resume_content')이 문제가 아니라면 두 개의 조인과 모든 조건을 확인하십시오.이 중 하나가 실패하면 조인이 실패합니다. field_data_field_resume_of_study.entity_id = field_data_field_resume_education.field_resume_education_value이 실패 할 수 있습니다.

당신은 다음 하나 개의 테이블에서 조인 * 하나 개를 선택 테이블에서 SELECT * 실행해야 다른 다음 하나 개의 테이블에서 또 다른 3 다음 하나 개의 테이블에서 또 다른 3에 가입하고 조건 1 곳, 당신은 것입니다 가입 * 선택 조인 * 선택 쉽게 캠이 실패한 곳을 알 수 있습니다.

+0

내가 조건을 추가 할 수있는 다른 방법을 제안 할 수 있습니까? "field_data_field_resume_degree_level.field_resume_degree_level_tid IN (4,7) AND field_data_field_resume_of_study.field_resume_of_study_tid IN (18,19,21)" – user3506575

+0

당신이 이러한 INNER 같은 조건이 field_data_field_resume_of_study.entity_id = field_data_field_resume_education.field_resume_education_value ON field_data_field_resume_of_study 가입 가입 IN을 field_data_field_resume_of_study.field_resume_of_study_tid 포함 할 수 있습니다 (18,19,21) – Anil

+0

예 쿼리 : * mysql 데이터베이스에서 user FROM B \t는 MySQL의 가입을 선택합니다. 사용자 a ON a.user = b.user AND a.select_priv IN ('Y', 'N') \t JOIN mySQL.user c ON b.user = c.use r AND a.Insert_priv IN ('N') – Anil

관련 문제