簡體   English   中英

sql查詢返回具有相同列值的所有行

[英]sql query to return all rows with same column value

我有一個像

    column_1 | column_2 | column_3
    ------------------------------
         aaa | bbb      | ccc
         xys | hkj      | fgh
         dfs | jhv      | ccc
         cfg | rty      | fgh
         iyd | olp      | ccc
         gdv | tdr      | www

我想得到這樣的結果,以便在column_3中具有相同值的所有行與它們的column_3值一起被打印出來

        column_1 | column_3
        --------------------
             aaa | ccc
             dfs | ccc
             iyd | ccc
             cfg | fgh
             xys | fgh
             gdv | www

我知道SELECT DISTINCT column_3 FROM table_name; 給了我column_3所有唯一名稱,但是如何獲取所有依賴column_3column_1值?

您是否可能對此考慮過度? 我相信你想要

 SELECT column_1,
        column_3
   FROM table_name
  ORDER BY column_3, column_1
Select ...
From table_name As T
Where Exists    (
                Select 1
                From table_name As T2
                Where T2.column_3 = T.column_3
                    And T2.<Primary Key Column> <> T.<Primary Key Column>
                )

顯然,您將<Primary Key Column>替換為唯一標識table_name每一行的列。 如果column_1是該列,那么我們將得到:

Select ...
From table_name As T
Where Exists    (
                Select 1
                From table_name As T2
                Where T2.column_3 = T.column_3
                    And T2.column_1 <> T.column_1
                )

我還沒有在MYSQL中嘗試過此方法,但是在SQL Server中可以完成這項工作。

CREATE TABLE table_name (column_1 CHAR(3), column_2 CHAR(3), column_3 CHAR(3))
INSERT INTO table_name VALUES 
('aaa','bbb','ccc')
,('xys','hkj','fgh')
,('dfs','jhv','ccc')
,('cfg','rty','fgh')
,('iyd','olp','ccc')
,('gdv','tdr','www')

SELECT column_1  
     , column_3 
  FROM table_name a
 WHERE EXISTS(SELECT column_3 
               FROM table_name b
              GROUP BY column_3
             HAVING COUNT(column_3) > 0
                AND b.column_3 = a.column_3)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM