MySQL无主键关联查询时无法返回正确结果
现在MySQL有t1表:
| task_id | value | 
|---|---|
| task1 | |
| task2 | 2002 | 
| task3 | 2002 | 
| task4 | 2002 | 
t2表:
| task_id | value | 
|---|---|
| task1 | 2001 | 
| task1 | 2002 | 
| task2 | 2002 | 
| task3 | 2002 | 
| task4 | 2002 | 
两张表都没有设置primary key,字段类型均为varchar。现执行:
SELECT t1.task_id,t1.value,
t2.value
FROM t1 LEFT JOIN t2 ON t1.task_id = t2.task_id;
会返回结果:
| task_id | value | value(1) | 
|---|---|---|
| task1 | null | 2001 | 
| task1 | null | 2002 | 
| task2 | 2002 | 2002 | 
| task3 | 2002 | null | 
即使把t1、t2表的task4所在行均删掉,再执行上述语句也会返回同样的结果。这是为什么呢?
回答
结果哪里有问题
建议你检查下 t1或则t2表里的 task_id 是不是哪一边的 t4后面多了空格. 用你的表,和你的 sql 查询出来是5行数据,task4是在结果里的.不要怀疑一个成熟的产品在这种基本的问题上会犯错误

你看这个数据,我造了你的数据去执行,结果怎么和你的不一样呢,没问题啊,估计是你本地数据的问题了,你查一下你本地的数据,SQL语法是没问题的。
以上是 MySQL无主键关联查询时无法返回正确结果 的全部内容, 来源链接: utcz.com/a/20769.html








