在SQL中获取唯一的行/值。我有类似这样的数据
valueA ValueB ValueC
test "Value1" "Something"
test "Value1" "Something else"
test2 "Value1" "Something else"
那么我想获得前两行,因为valueC是不同的,然后我也想要行 3。
但是说第4行是
test "Value1" "Something"
与第1行相同。我不想要那一行。
我可以使用select语句或其他地方吗?
在我的架构中,ValueA位于一个表中,然后值b和C来自不同的表。 所以我正在做类似
的事情select * from table1,table2
给了我3个值。
但我不想要重复的值。
答案 0 :(得分:3)
SELECT DISTINCT * FROM Table1, Table2
会做你想做的事。
但是,SELECT语句不包含告诉系统 如何将行连接在一起的标准。因此,您将获得一个笛卡尔积,其中包含的行数等于Table1中的行数乘以Table2中的行数。这通常是不你想要的(偶尔)。
所以你可能想要这样的东西:
SELECT DISTINCT * FROM Table1, Table2 WHERE Table1.SomeColumn = Table2.SomeColumn
或者,更新的SQL方言:
SELECT DISTINCT * FROM Table1 INNER JOIN Table2 ON Table1.SomeColumn = Table2.SomeColumn
答案 1 :(得分:1)
使用SELECT DISTINCT
?
如:
SELECT DISTINCT value1, value2, value3 FROM table1, table2
答案 2 :(得分:1)
从table1,table2
中选择Distinct *答案 3 :(得分:1)
您可能希望查看SQL参考:
答案 4 :(得分:1)
SELECT DISTINCT *
FROM table1, table2
答案 5 :(得分:0)
这个怎么样?
SELECT DISTINCT * FROM Table1, Table2
答案 6 :(得分:0)
试试这个:
select a.valueA, b.valueB, b.valueC
from table1 a join table2 b on <join condition>
group by a.valueA, b.valueB, b.valueC;