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