2012-12-31 2 views
0

저는 MySQL 5.1.66을 사용하고 있으며 모든 남성 셔츠와 크기 및 가격을 선택하는 쿼리를 만들었습니다. GROUP CONCAT을 사용하여 크기 열과 가격 열을 상위 테이블에서 같은 열로 병합했습니다. 여기에 내가 이렇게GROUP은 여러 행을 처리합니다

SELECT shirts.shirt_name, shirts.men AS main_photo, 
     GROUP_CONCAT(shirt_sizes.size_name,shirt_prices.price) AS sizes 
FROM shirts 
JOIN shirts_link ON shirts_link.shirt_id=shirts.id 
JOIN shirt_sizes ON shirt_sizes.id=shirts_link.size_id 
JOIN shirt_prices ON shirt_prices.id=shirts_link.price_id 
WHERE shirts.men!='' AND shirts_link.adult='y' 
GROUP BY shirts.id 

만든 문이다, 크기 열 및 가격 열은 select 문에서 하나 열에서 두 개의 분리 된 실체는 아직? 내가 알아 차 렸던 또 다른 일은 크기의 순서가 모두 섞여 있다는 것입니다. 이 테이블에 조직 된 것처럼 예를 들어,이

medium29.22,large29.22,1x-large29.22,2x-large30.44,small29.22,3x-large31.70 

이 왜 작은 배에서 않을 것입니다 열 중 하나의 행은? PHP를 통해 웹 사이트에 삽입하는 것과 관련하여 내가하려고하는 일이 자동으로로드되는 경우 해당 조직화되지 않은 방식으로 진행될 것이라고 상상합니다. 이 문제를 어떻게 해결할 수 있습니까?

내 궁극적 인 목표는 내가 만든 자바 스크립트 앱에 각 행을 자동으로 채울 수있는 선택 항목을 만드는 것입니다. 셔츠 이름, 주요 그림, 각 크기 및 가격을 내가 코딩 한 div에로드해야합니다. 실제 테이블이 사용되는지 확인해야하는지 알려주세요. 미리 감사드립니다 :)

+1

저는 그것을 보여주기 위해 업데이트했고, MySQL 5.1.66을 사용하고 있습니다. – Optiq

답변

1

먼저 group_concat 함수의 목적은 그룹화 된 작업에서 특정 열의 모든 값을 유지하는 것입니다. 예를 들어,

Table1 
ID field1 field2 
1  ram  science 
2  ramesh maths 
1  ram  maths 

귀하의 요구 사항은

ID field1 field3 
1 ram  science,maths 
2 ramesh maths 

희망이

+0

그 부분을 이해합니다. 내가 알아 내려고하는 것은 우리가 칼럼 이름을 참조하여 그 셀에서 개별적으로 호출 할 수있는 것처럼 2 개의 칼럼을 사용하여 똑같은 일을 수행하는지 여부입니다. 희망이 좀 도움이됩니다. – Optiq

+0

예, 전화를 걸 수 있습니다. 우르 만 문제는 그들이 테이블로서 적절한 순서로 오지 않는다는 것인가 ?? – Mari

0

이 시도 몇 가지 통찰력을 제공하고 GROUP_CONCAT 후 생산 다음과 같이됩니다 특정 사람의 과목을 얻을 경우 :

SELECT s.shirt_name, s.men AS main_photo, 
     GROUP_CONCAT(CONCAT(ss.size_name, '.', sp.price)) AS sizes 
FROM shirts s 
INNER JOIN shirts_link sl ON sl.shirt_id = s.id 
INNER JOIN shirt_sizes ss ON ss.id = sl.size_id 
INNER JOIN shirt_prices sp ON sp.id = sl.price_id 
WHERE s.men!='' AND sl.adult='y' 
GROUP BY s.id 
관련 문제