【发布时间】:2016-10-20 06:20:42
【问题描述】:
我有两张桌子:
人员表:
---------------------
|Person_ID | Phone_ID |
|---------------------|
|1234 | 12 |
|345 | 10 |
|43 | 33 |
|55 | 27 |
-----------------------
电话桌:
--------------------------
|Phone_ID | Phone_Number |
|--------------------------|
| 12 | null |
| 10 | 9876 |
| 33 | 9654 |
| 27 | null |
--------------------------
当我执行查询时:
select t1.person_id, t2.phone_id
from person t1
left join
phone t2
on t1.phone_id=t2.phone_id;
我得到结果:
--------------------------
| Person_ID | Phone_number |
|--------------------------|
| 1234 | null |
| 345 | 9876 |
| 345 | null |
| 43 | 9654 |
| 43 | null |
| 55 | null |
--------------------------
如何消除为已经有电话号码的人员 ID 获取 null 值的问题?
【问题讨论】:
-
用你的数据&选择是不可能得到这个结果的。
-
正如 dnoeth 所说,您的选择无法从指定的表数据中返回该结果。
-
根据您的示例数据,结果应仅包含 4 行。但是,在您的输出中,ID 345 和 43 有两行。
-
您的查询不会返回该结果。你确定吗?
-
人
345的电话号码既是9876又是空...?这张桌子的钥匙是……?如果电话号码根据定义是唯一的,则它需要一个 ID,因为...?我认为您需要先修复数据,然后才能从中获得任何明智的结果。