MySQL在幕后加入
我记得在某处读到/被告知/编造了一个谣言(^ ^),在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 ...
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