如果列不同,我真的需要在JOINS中包含表名或AS吗?

时间:2012-01-25 19:14:57

标签: mysql join syntax

我注意到有一天我可以轻松地加入mysql,

 SELECT peeps, persons, friends FROM tablea JOIN tableb USING (id) WHERE id = ?

而不是使用,

 SELECT a.peeps, a.persons, b.friends FROM tablea a JOIN tableb b USING (id) WHERE id = ?

只有在没有匹配的列名时才有效,我为什么要做第二个而不是第一个?

3 个答案:

答案 0 :(得分:2)

不,你不需要,但我认为你真的应该。在我的经验中,明确表达你想做的事情几乎总是更好。

考虑那些不得不落后于你的穷人(或女孩)的感受,并试图找出你想要完成的事情,以及每个栏目所在的表格。明确说明列的来源允许人们在不深入了解模式的情况下查看查询并收集该信息。

答案 1 :(得分:1)

查询1将起作用(只要没有不明确的列名)。

查询2将

  • 更清楚
  • 更易于维护(想想那些不了解数据库架构的人)
  • 在其中一个表
  • 中添加了不明确的列名后继续存在

所以,不要因为可怜的少数几次保存按键而懒惰。

答案 2 :(得分:0)

如果没有重复的列名,则没有必要。如果这样做,查询将失败。