sql 一对多查询

来源:百度知道 编辑:UC知道 时间:2024/09/22 17:20:16
表A
A1 B C TTT
A1 B C TTT2
A1 B C TTT4
A2 B C TTY1
A2 B C TTY5
A2 B C TTY3
A3 B C TTR1
A3 B C TTR5
A3 B C TTR3
想查出如下数据(即A1,A2,A3如的任意一行数据)的SQL怎么写的。
A1 B C TTT
A2 B C TTY1
A3 B C TTR5

select distinct a.列a,a.列b,a.列c,(select top 1 列d from 表A where 列a=a.列a,列b=a.列b,列c=a.列c order by newid()) from 表A a

你这样试试吧

以上希望对你有所帮助

即A1,A2,A3如的任意一行数据?
一般查找出来的结果都有个排列顺序。
像你的问题 使用order by 显示的结果是
A1 B C TTT
A2 B C TTY1
A3 B C TTR1
或:
A1 B C TTT4
A2 B C TTY5
A3 B C TTR5

你的要求是A1,A2,A3如的任意一行数据 ... 期待答案

SELECT [第一列],[第二列],[第三列] FROM A GROUP BY [第一列];

这个希望能帮助你。

SELECT * FROM
((SELECT TOP 1 * FROM A WHERE [字段名1] = 'A1') UNION ALL
(SELECT TOP 1 * FROM A WHERE [字段名1] = 'A2') UNION ALL
(SELECT TOP 1 * FROM A [字段名1] = 'A3')) AS T

应当是:select distinct(A1,A3,A3的字段名),distinct(B的字段名),distinct(C的字段名),(TTT 等的字段名) where (TTT 等的字段名) in ('TTT','TTY1','TTR5')