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)