我有以下表格,其中包含了一些列:
Table 1:
Id RefId PhoneNumber
1 11 919191
2 11 888888
3 11 919191
Table 2:
Id RefId City UniqueId
1 11 Mumbai 111
2 11 Pune 222
3 11 Nashik 333
我想要Table1
和Table2
中的几列。两个表中的共同点是RefId
。 Table2
有UniqueId
,它是Table2
的主键。如果我基于RefId
进行内部联接,我将获得9条记录,但我想要3.我如何得到它?
这是我的问题:
SELECT T1.PhoneNumber,T2.City,T2.UniqueId,T2.RefId
FROM Table1 T1
INNER JOIN Table2 T2
ON T1.RefId = T2.RefId
答案 0 :(得分:0)
如果ID也用于加入
SELECT t1.Id, t1.RefId, t1.PhoneNumber, t2.City, t2.UniqueId
FROM Table1 t1
INNER JOIN Table2 t2
ON t1.Id = t2.Id
AND t1.RefId = t2.RefId
如果随机生成了ID,你可能不应该加入它们。
如果ID是随机的,但所有PhoneNumbers都在同一个地方,那么你可以选择最小值PhoneNumber(或Max)
SELECT t2.RefId, t1.PhoneNumber, t2.City, t2.UniqueId
FROM Table2 t2
INNER JOIN (
SELECT RefId, MIN(PhoneNumber) AS PhoneNumber
FROM Table1
GROUP BY RefId
) t1 ON t1.RefId = t2.RefId