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

Mysql 返回具有相同列值的所有行的sql查询,mysql,sql,Mysql,Sql,我有一个类似的数据库 column_1 | column_2 | column_3 ------------------------------ aaa | bbb | ccc xys | hkj | fgh dfs | jhv | ccc cfg | rty | fgh iyd | olp | ccc gdv | tdr

我有一个类似的数据库

    column_1 | column_2 | column_3
    ------------------------------
         aaa | bbb      | ccc
         xys | hkj      | fgh
         dfs | jhv      | ccc
         cfg | rty      | fgh
         iyd | olp      | ccc
         gdv | tdr      | www
我希望得到这样的结果,即在列_3中具有相同值的所有行连同它们的列_3值一起打印出来


我知道从表名称中选择不同的列3;为我提供列3的所有唯一名称,但如何获取依赖于列3的所有列1值?

是否可能您想得太多了?我相信你想要

 SELECT column_1,
        column_3
   FROM table_name
  ORDER BY column_3, column_1

我还没有在MYSQL中尝试过这一点,但在SQLServer中,这一点很有效

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)

如果您的第二个框是您想要的示例,那么您就不能使用SELECT DISTINCT column_1、column_3吗?如果您的第二个框是您想要的示例,那么您就不能使用SELECT column_1、column_3按列_3、列_1排序吗?如果只需要具有相同列_3的第一部分怎么办?例如aaa | ccc dfs | ccc iyd |ccc@George-我不确定我是否理解这个问题。您是否要查询与第一列3值相关的所有行,该值被多次使用?如果是,系统应如何对第3列值排序?按频率?通过alpha sort?Nevermind,我正在寻找一种方法来检索列_3值为'ccc'但不知道值'ccc'的所有行。对于me来说,一个可能且可行的解决方案是使用如下内部选择:从表_名称中选择*列,其中列_3=从表_名称中选择最小列_3
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>
                )
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
                )
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)