我的查询类似于以下
SELECT t1.Name,
t2.ID,
t2.name
FROM table1 t1
INNER JOIN table2 t2 ON t1.ID = t2.ID
这给了我一大堆价值观。但我真正想要的只是t1.Name的不同值,但t2.ID和t2.name的相关值。
我能想到的唯一方法是使用Group By子句,但是我必须在t2.ID和t2.name上使用聚合函数。我使用了MIN / MAX但是我得到的t2.ID和t2.name的值可能不是来自同一行。
我确信这里有一些简单的东西。感谢帮助人员
编辑: 这是实际查询
SELECT (wi.wi_wpsnumbers), ws.*
FROM wi_weld_instance wi
INNER JOIN wlds_weld_section ws ON wi.weldinstanceid = ws.weldinstanceid
这是返回的前几行:
*999 100633 106*
*120,200,400 100656 44*
120,200,400 100656 46
120,200,400 100656 47
120,200,400 100656 48
120,200,400 100656 49
120,200,400 100656 50
120,200,400 100656 51
*123 100657 46*
123 100658 46
123 100659 46
123 100660 46
所以我真正想要的是第一行,然后是第二行......其中123出现在第一列等等。我用星号标记了这些行。
答案 0 :(得分:0)
有DISTINCT
个关键字。
SELECT DISTINCT t1.Name,
t2.ID,
t2.name
FROM table1 t1
INNER JOIN table2 t2 ON t1.ID = t2.ID
有关来自MSDN的DISTINCT的相关信息:'指定只有唯一的行才能出现在结果集中。出于DISTINCT关键字的目的,空值被认为是相等的。'
答案 1 :(得分:0)
听起来你只需要使用DISTINCT关键字,你似乎已经暗示了这一点。
SELECT DISTINCT(t1.Name),
t2.ID,
t2.name
FROM table1 t1
INNER JOIN table2 t2 ON t1.ID = t2.ID