2010-05-09 5 views
0

내가 가지고있는 튜플의 주요 차이점은 하나가 '형'= 로고 및 다른 튜플이 '형'= logo_large을 가지고 있다는 것입니다 2 개 튜플MySQL은 SELECT 한 Statment 문제

SELECT bar_id, bar_name, town_name, bar_telephone, subscription_type_id, pic_type 
FROM towns, subscriptiontype, regions, bar 
LEFT JOIN barpictures bp ON bar.bar_id = bp.bar_id_fk 
WHERE town_id = town_id_fk 
AND bar.test_field = 0 
AND subscription_type_id = subscription_type_id_fk 
AND region_id = region_id_fk 
AND (type like 'logo%' OR type IS NULL) 

을 반환 다음 쿼리. 나는 2 유형 속성, 하나 지주 "로고"와 다른 "logo_large"이 가능하다

예를 들어

bar_id, bar_name, town_name, bar_telephone, subscription_type_id, pic_type1, pic_type2 

을 가지고 대신 두 개의 튜플을 가지고, 나는이 필요해야합니까?

+0

ANSI-89와 92를 함께 사용하면 구문 검사에 합격해서는 안됩니다 ... –

답변

1

네, 가능 :

아이디어는 행을 병합하고 (집계 함수는 null을 반환해야합니다 일치하지 않는 행에 대해) 당신의 상태와 일치하는 경우에만 값을 선택하는 기능을 집계 사용하는 것입니다
SELECT ..., subscription_type_id, 
    MAX(IF(type='logo',type,NULL)) as pic_type1, 
    MAX(IF(type='logo_large',type,NULL)) as pic_type2 
... 
GROUP BY bar_id;