테스트 사이트 - 개발 중인 베타 버전입니다

sql 중복데이터 그룹화해서 출력하기 질문입니다. 채택완료

humanb2box 5년 전 조회 1,826

회원 테이블내에 전화번호가 중복인 데이터를 추출해야하는데요

 

</p>

<p>SELECT phone, name, COUNT(name) AS cnt FROM member WHERE phone<> '' GROUP BY phone HAVING cnt > 1;</p>

<p>
이렇게 했더니 중복하고 이름이 나오긴 하는데 중복된 이름이 전부 나오질 않습니다.

 

제가 원하는건

 

예를 들어 같은번호를 가진 회원이 3명이라면

 

1row에  중복된 전화번호ㄹ를 놓고 3명이 나오게 추출하고싶은데.. 불가능할까요?

 

 

1

전화번호

홍길동

임꺽정

2

전화번호

장길산

장영실

 

이런식으로요.. 도움좀 부탁드립니다.

 

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
Dessi
5년 전

이런식으로 해보세요.

</p>

<p>            <?php

            $sql = "SELECT phone, name, COUNT(name) AS cnt FROM member WHERE phone<> '' GROUP BY phone HAVING cnt > 1;";

            $result = sql_query($sql);

            $num = 1;</p>

<p>             while ($row = sql_fetch_array($result)) {

                $hp_name = array();

                $sql2 = "SELECT phone, name  FROM `member` WHERE `phone` = '".$row['phone']."'";

                $result2 = sql_query($sql2);

                 while ($name_row = sql_fetch_array($result2)) {

                     $hp_name[] = $name_row['name'];

                     $name = implode("
",$hp_name);                    

                 }    

                

        $str .= "<tr>

                            <td>".$num."</td>

                            <td>".$row['phone']."</td>

                            <td>".$name."</td>

                    </tr>            

            ";

             $num++;

            }

        ?>

            <table>

                <tr>

                    <td>순번</td>

                    <td>연락처</ td>

                    <td>이름</td>

                </tr>

                <?php echo $str; ?>

            </table></p>

<p>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인