将WHERE转换为JOIN语句

时间:2015-02-13 00:57:08

标签: mysql sql join

我从SQL开始,出于某种原因,教授建议我们远离JOIN语句。但是,在做了某些原因后,我得出结论,JOIN语句实际上是首选。对此有何正式立场?

另外,我想将此WHERE语句转换为JOIN语句:

SELECT max(z.depttime) 
FROM flights z
WHERE z.ref = p.ref 
   AND z.depttime < f.depttime

我试过这个,但显然是错的:

SELECT max(z.depttime) 
FROM bus_journey z 
JOIN z.ref=p.ref 
ON z.depttime < f.depttimewhere 

另外,为了澄清,我从WHERE转换为JOIN的原因是软件我使用的状态不允许使用&#34;旧式JOIN(ANSI JOINs)。请使用标准语法。&#34;

感谢任何帮助。 干杯!

2 个答案:

答案 0 :(得分:1)

JOIN关键字必须后跟表名。然后使用ON子句指定该表与先前表之间的连接条件。它应该是这样的:

SELECT MAX(z.depttime)
FROM bus_journey z
JOIN other_table p ON z.ref = p.ref
JOIN third_table f ON z.depttime < f.depttime

这相当于隐式连接:

SELECT MAX(z.depttime)
FROM bus_journey z, other_table p, third_table f
WHERE z.ref = p.ref AND z.depttime < f.depttime

答案 1 :(得分:1)

作为一个老屁我使用WHERE语法。我工作的一些年轻人对JOIN语法感到兴奋。确实没有功能差异,有时我使用JOIN语法,特别是在共享代码时。它与OUTER和INNER JOIN语法更加一致,否则恕我直言没有任何好处(或有害)