抱歉标题不好,但我不知道应该是什么。
我想加入两个表,但行数应与表一相同。
这是我的表格
====Table 1=====
| Name | IdCardNo |
===============
| Peter | 1234 |
| Mary | 5678 |
===============
==========Table 2=========
| IdCardNo | phoneNo | Job |
=========================
|1234|11111111|Student|
|1234|11111111|Waiter|
|5678|22222222|Student|
=========================
这是我想要的结果
Peter|1234|11111111|
Mary|5678|22222222|
但如果我做SELECT NAME, PhoneNo FROM Table1 LEFT JOIN Table2 on Table1.IdCardNo=Table2.IdCardNo
我明白了
Peter|1234|11111111|
Peter|1234|11111111|
Mary|5678|2222222|
我知道我可以做GROUP BY NAME,但我认为这不是一个好主意。
我应该使用什么查询?
我认为SELECT DISTINCT...
是我想要的。谢谢!
答案 0 :(得分:0)
只需使用DISTINCT
即可SELECT DISTINCT语句用于仅返回distinct (不同的)价值观。
像
这样的东西SELECT DISTINCT NAME, PhoneNo
FROM Table1 LEFT JOIN
Table2 on Table1.IdCardNo=Table2.IdCardNo
也许您可能想重新考虑表格的设计。除非table2
的每个实例都需要不同(可能)的数字,否则您可能希望将该数字存储在table1
?
答案 1 :(得分:0)
您的预期结果不明确
Mary|5678|11111111|
我想应该是
Mary|5678|22222222|
这可以实现
select
t1.Name,
t1.IdCardNo,
t2.phoneNo
from table1 t1
join table2 t2 on t1.IdCardNo = t2.IdCardNo
group by t1.Name,t1.IdCardNo,t2.phoneNo
答案 2 :(得分:0)
SELECT distinct t1.NAME,t1.idCardNo,t2.PhoneNo FROM Table1 t1 LEFT JOIN table2 t2 on t1.IdCardNo = t2.IdCardNo
Distinct将跳过结果集中的相同行!
答案 3 :(得分:0)
'Select distinct'将仅使用唯一值填充连接表。试试看,让我知道。