2013-02-12 3 views
1

다음과 같은 작업을 수행하려고합니다. 고유 한 조합을 구성하는 3 개의 열이있는 데이터베이스가 있습니다. 이 조합을 새 표로 추출했습니다 (표 1). 이제 별도의 열에있는 데이터를 고유 한 3 col 조합으로 일치시키고 싶습니다. 예를 들어 :동시에 데이터 병합 및 연결

cat dog day twenty two 
cat dog day twenty eleven 
cat dog morning eleven ten 

내가 연결된되어야하는 항목 예측할 수없는 받았음을 추가해야합니다 별도의 주석으로

cat dog day "twenty=two&twenty=eleven" 
cat dog morning "eleven=ten" 

될 것이다.

나는 다음을 시도했다. 문자열 필드는 val3, val4 및 val5의 고유 조합의 모든 결과의 concat로 업데이트되어야한다.

UPDATE `db`.`table1` , `db`.`table2` 
SET 
string = 
(
SELECT group_concat(value1,'=',value2,'&') from table2 
group by (val3,val4,val5) 
) 
WHERE 
(
`table1`.`val3`=`table2`.`val3` AND 
`table1`.`val4=table2`.`val4` AND 
`table1`.`val5=table2`.`val5`) 
; 

힌트 또는 팁을 많이 주시면 감사하겠습니다. Thansks 사전에. 참조 : Solution은 mySQL을 사용하고있어 2 col와 일치해야하므로 작동하지 않습니다.

+0

,하지만 난에 대한 생각 GROAT_CONCAT (CONCAT (value1, '=', value2) SEPARATOR '& ")', 이것을 추가하고 WHERE 절을 제거해보십시오. –

+0

행 통합에 대한 도움말은 http://stackoverflow.com/questions/13059740/sql-consolidating-groups-of-data/을 참조하십시오. – Barmar

+0

샘플 레코드를 볼 수 있습니까? –

답변

0

을 감안할 때이 데이터 구조 :

CREATE TABLE `dummy` (
    `col1` varchar(20), 
    `col2` varchar(20), 
    `key` varchar(20) DEFAULT NULL, 
    `val` varchar(20) DEFAULT NULL 
); 

다음 쿼리는 당신이 요구하는 무엇을 줄 것이다 : 우리는 당신의 테이블 sructure에 대한 자세한 내용을 알고 필요가 있다고 생각

select col1, col2, group_concat(concat(`key`,'=', `val`) SEPARATOR '&') from dummy group by col1, col2