何时或为何使用mysql AS和USING?

时间:2011-07-04 05:22:59

标签: mysql

有人可以向我解释为什么他们在代码上使用AS idAS r2以及USING id

SELECT id, username FROM friendship JOIN (SELECT CEIL(RAND() * (SELECT MAX(id) FROM friendship)) AS id) AS r2 USING (id);

我只是想知道使用它们的目的,为什么要使用它们?

2 个答案:

答案 0 :(得分:1)

As只是为子查询创建一个别名,这样你就可以在using命令中使用相同的别名'id'。

基本上,查询希望友谊表加入id列上的子查询,因为子查询只返回一个可以与友谊表中的id列连接的结果。

答案 1 :(得分:0)

OscarMk已经解释了AS,但USING相当于ON table1.id = table2.id。通过使用USING(这里有点冗余......),您的RDBMS基本上将列合并为一个列,这意味着您不必告诉您的RDBMS是否需要table1或table2中的列。简单的例子:

SELECT table1.id
FROM table1
INNER JOIN table2
    ON table1.id = table2.id;


SELECT id
FROM table1
INNER JOIN table2
    USING (id);

这些查询是等效的。如果您忘记在第一个查询中使用table1.id,则RDBMS会引发错误。

你通常可以做一个NATURAL JOIN而不是INNER JOIN,而根本不使用USING或ON子句(这就是NATURAL JOIN的用途)