2013-08-06 6 views
0

I가 OFFICE_GROUP 및 OFFICE_IPS라는 두 개의 테이블,조건에 일치하는 테이블에서 여러 레코드를 가져 오기

OFFICE_GROUP

OFFICEIPS

같은 4 개 행을 얻을처럼 나는 결과를 얻을 싶습니다 RESULT

쿼리는 다음과 같습니다.

SELECT (SELECT oip.IP as IP FROM OFFICE_IPS oip, OFFICE_GROUP og WHERE og.OFFICE_GROUP_ID = oip.OFFICE_GROUP_ID 
     AND og.MODULES like '%1%' lIMIT 1) AS SEMINAR, 
(SELECT oip.IP as IP FROM OFFICE_IPS oip, OFFICE_GROUP og WHERE og.OFFICE_GROUP_ID = oip.OFFICE_GROUP_ID 
     AND og.MODULES like '%2%' lIMIT 1) AS FAQ, 
(SELECT oip.IP as IP FROM OFFICE_IPS oip, OFFICE_GROUP og WHERE og.OFFICE_GROUP_ID = oip.OFFICE_GROUP_ID 
     AND og.GRP_LIMIT like '%1%' lIMIT 1) AS DEV_MODE, 
(SELECT oip.IP as IP FROM OFFICE_IPS oip, OFFICE_GROUP og WHERE og.OFFICE_GROUP_ID = oip.OFFICE_GROUP_ID 
     AND og.GRP_LIMIT like '%2%' lIMIT 1) AS META_API, 
(SELECT oip.IP as IP FROM OFFICE_IPS oip, OFFICE_GROUP og WHERE og.OFFICE_GROUP_ID = oip.OFFICE_GROUP_ID 
     AND og.GRP_LIMIT like '%3%' lIMIT 1) AS TRADING_SIGNAL 

그러나 여러 행을 가져 오려면 하위 쿼리가 여러 행을 반환하는 경우를 의미합니다. 위의 쿼리에서

내가 # 1242 같은 오류가 발생 한 후 '... LIMIT 1'을 제거하는 경우 - 하위 쿼리는 1 개 이상의 행

누구 반환, 저를 도와주세요.

+0

가입으로 시도? –

+0

@ dianuj, 귀하의 의견을 주셔서 감사합니다, 그래서 만약 당신이 조인에 변환하는 방법에 대한 대략적인 아이디어를주는 mysql을 배우고 있어요 –

+0

조인과 내 대답 쿼리를 참조하십시오 –

답변

0

하위 쿼리는 SELECT가 아닌 최상위 쿼리의 FROM 부분에서 수행해야합니다. 부속 선택 후 조인 열을 포함 할 필요가

SELECT seminar, faq, dev_mode, meta_api, trading_signal 
FROM (subselect) as seminars_table, (subselect) as faq_table.... 
WHERE join_contition_1 and join_condition_1; 

처럼 그것을보십시오.

0

는 하위 쿼리가 왜 가입하지 왜이

SELECT oip.IP AS SEMINAR ,oip.IP AS FAQ ,oip.IP AS DEV_MODE ,oip.IP AS META_API 
,oip.IP AS TRADING_SIGNAL 
FROM OFFICE_IPS oip 
INNER JOIN og.OFFICE_GROUP_ID = oip.OFFICE_GROUP_ID  
WHERE (og.MODULES LIKE '%1%' OR og.MODULES LIKE '%2%') 
AND (og.GRP_LIMIT LIKE '%1%' OR og.GRP_LIMIT LIKE '%2%' 
OR og.GRP_LIMIT LIKE '%3%') 
관련 문제