使用外部连接的MySQL语句与使用何处设置条件的MySQL语句
对于具有使用外部连接的MySQL语句与使用何处设置条件的MySQL语句,mysql,Mysql,对于具有内部联接的语句: SELECT column(s) FROM table1 INNER JOIN table2 ON condition(s) ... INNER JOIN tableN ON condition(s); 我可以用这个来写一个等价的语句: SELECT column(s) FROM table1, table2, ..., tableN WHERE condition(s); 注意我如何使用WHERE在第二条语句中设置条件 问题:我可以使用何处设置任何外部(左/右)连
内部联接的语句
:
SELECT column(s) FROM table1
INNER JOIN table2 ON condition(s)
...
INNER JOIN tableN ON condition(s);
我可以用这个来写一个等价的语句:
SELECT column(s) FROM table1, table2, ..., tableN WHERE condition(s);
注意我如何使用WHERE
在第二条语句中设置条件
问题:我可以使用何处设置任何外部(左/右)连接语句的条件来编写等效语句吗 我不是MYSQL专家,但在oracle中,where条件中外部联接的语法是where t1.id+=t2.id我不是MYSQL专家,但在oracle中,where条件中外部联接的语法是where t1.id+=t2.id来自:
SELECT ...
FROM table1 t1
RIGHT OUTER JOIN table2 t2 ON (t1.x = t2.y AND somecondition)
在没有连接条件的情况下,内部连接和(逗号)在语义上是等价的
对我来说,逗号意味着一个内部连接
我建议您使用ANSI join语法以提高清晰度和可移植性。来自:
在没有连接条件的情况下,内部连接和(逗号)在语义上是等价的
对我来说,逗号意味着一个内部连接
我建议您使用ANSI join语法以提高清晰度和可移植性
我可以使用WHERE为任何外部(左/右)连接语句设置条件来编写等效语句吗
不,不是在ANSI SQL或MySQL中。在接受ANSI JOIN语法之前,其他一些数据库有自己的语法。例如,在Oracle 8中:
WHERE table1.id=table2.thing (+)
但是今天,对于这两种连接,ANSI连接语法通常应该是首选的
我可以使用WHERE为任何外部(左/右)连接语句设置条件来编写等效语句吗
不,不是在ANSI SQL或MySQL中。在接受ANSI JOIN语法之前,其他一些数据库有自己的语法。例如,在Oracle 8中:
WHERE table1.id=table2.thing (+)
但是今天,对于这两种联接,ANSI联接语法通常都是首选的。在Sybase中,您可以使用
表1.field1
=表2.field1
(左外)=右外在Sybase中,您可以使用表1.field1
=表2.field1
(左外)=右外)