Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL在幕后加入_Mysql_Join - Fatal编程技术网

MySQL在幕后加入

MySQL在幕后加入,mysql,join,Mysql,Join,我记得在某处读到/被告知/编造了一个谣言(^ ^),在MySQL服务器中,以下两个查询在幕后是相同的: SELECT * FROM a JOIN b ON a.id = b.id 及 这是真的吗?如果是这样的话,在其他方面,一个比另一个好吗?(例如解析效率或标准遵从性)事实上确实如此。第一个查询符合SQL-89标准,第二个查询符合SQL-92标准 SQL-92标准引入了内部联接。。在和外部连接上。。打开,以替换SQL-89更复杂的(?)语法 SQL-89中的外部联接将是: SELECT ...

我记得在某处读到/被告知/编造了一个谣言(^ ^),在MySQL服务器中,以下两个查询在幕后是相同的:

SELECT *
FROM a
JOIN b
ON a.id = b.id


这是真的吗?如果是这样的话,在其他方面,一个比另一个好吗?(例如解析效率或标准遵从性)

事实上确实如此。第一个查询符合SQL-89标准,第二个查询符合SQL-92标准

SQL-92标准引入了
内部联接。。在
外部连接上。。打开
,以替换SQL-89更复杂的(?)语法

SQL-89中的外部联接将是:

SELECT ...
FROM t1, t2
WHERE t1.id *= t2.id
在SQL-92中它会在哪里

FROM t1 OUTER JOIN t2 ON t1.id = t2.id

很长一段时间以来,我确实更喜欢SQL-89而不是SQL-92,但我认为SQL Server 2008 compability取消了对SQL-89连接语法的支持。

是的,这些都是相同的。但这并不是Mysql特有的,它只是一种不同的连接方式。你在上面写的是最新的和首选的一个

可能重复的oops的可能重复。。。应该花更多时间搜索:)
FROM t1 OUTER JOIN t2 ON t1.id = t2.id