2011-06-23 98 views
0

运行MySQL社区服务器5.5.13MySQL的左连接 - 奇怪的问题

使用下面的查询:

select t1.f1, t2.f1, t2.f2 
from t1 left join t2 on (t1.f3 = t2.f3) 

如果左联接未找到匹配表t2,而不是把空的值对于t2.f1,t2.f2,它实际上是把列名放在那里。

任何建议,为什么这可能会发生?

+0

你恰好有一个行输出? – Johan

回答

0

试试这个:

SELECT `t1`.`f1`, `t2`.`f1`, `t2`.`f2` 
FROM `t1` 
LEFT JOIN `t2` ON `t1`.`f3` = `t2`.`f3`; 
+1

-1,这将没有任何区别。 – Johan

+0

鸡蛋在我的脸上。事实证明,它是在t2中损坏的数据,但感谢回应。出于好奇,在表格和字段名称周围放置单引号是否是一种最佳做法? – jam

+2

@jam,不,它看起来丑陋,蓬松和讨厌和可怕,反引号只适用于保留字的字段名称,在它们中有空格或是(gasp *)数字。 – Johan