SELECT `accounts`.`password` FROM accounts WHERE `accounts`.`user`='some_user'
SELECT password FROM accounts WHERE user='some_user'
我对这两个人有点困惑。我知道结果,两者之间没有什么不同。但是有一些理由采取一种方式而不是另一种方式吗?我是从第二种方式学到的,但有些人告诉我,第一种方式是采用“官方”方式。
答案 0 :(得分:2)
如果您正在执行table.field
,则需要使用JOIN
格式,并且需要使用它来消除不同表中具有相同名称的两个字段的歧义。例如:
SELECT table1.name
FROM table1
LEFT JOIN table1 ON table1.id = table2.id
WHERE table2.name='smith'
就使用重音符(`)而言,如果您的表或字段是保留的SQL关键字,例如select
,where
,and
等,则需要它。
答案 1 :(得分:0)
唯一不同的是您要将表名添加到查询中。我个人喜欢这样做以便以后的更改。如果您稍后加入另一个表中也有密码字段的表,则第二个语句将具有不明确的列名。
答案 2 :(得分:0)
只要您了解必须何时限定具有表名的列(当涉及多个表时)以及何时必须使用标识符引用(当您的标识符时)是处理查询的SQL引擎的保留字)然后我相信使用您的版本比使用完全限定和引用的版本更安全,更容易阅读。