2012-03-13 94 views
1

我有以下结构的表:如何在MySQL中显示重复记录并将记录与PHP结合?

TBL1

COL1 COL2 COL2 
---- ---- ---- 
A B 1 
B C 3 
A C 11 
A D 13 

SELECT TBL1.COL1, COL2 FROM TBL1 
INNER JOIN (SELECT COL1, count(COL1) as CNT FROM TBL1 
GROUP BY COL1 HAVING CNT > 1) dup ON TBL1.COL1= dup.COL1 ORDER BY COL1; 

这个查询returnug这样的:

COL1 COL2 COL2 
---- ---- ---- 
A B 1 
A C 11 
A D 13 

我想匹配的记录相结合。如果你还没有明白我的意思,我想显示的结果是:

------------------------ 
RESULT 
------------------------ 

A -> B 1 
    C 11 
    D 13 

即对于具有以下B的值1,C 11和d 13

如果我使用FOREACH结果是:

------------------------ 
RESULT 
------------------------ 

A -> B 1 
A -> C 11 
A -> D 13 

在此先感谢!

回答

2

你应该跟踪COL1的电流值在你的foreach,像这样:

$col1 = null; 
foreach(mysql_fetch_assoc($res) as $row) { 
    if(is_null($col1) || $row['COL1'] != $col1) { 
     echo $row['COL1'] . " -> "; 
     $col1 = $row['COL1']; 
    } else { 
     echo " "; 
    } 

    echo $row['COL2'] . " " . $row['COL3'] . "\n"; 
} 
+0

的foreach($水库为$行){ 如果(is_null($ COL1)|| $行[ 'COL1' ]!= $ col1){ echo $ row ['col1']。 “ - >”; $ col1 = $ row ['col1']; } else { echo“”; } echo $ row ['col2']。 “”。 $ row ['col3']。 “\ n” 个; } – dido 2012-03-13 13:38:41

+0

非常感谢! – dido 2012-03-13 13:39:36