我总是通过join来获得某些东西的结果,然后只使用这些结果进行连接。Mysql查询。 Join和SubQuery有什么区别?
SELECT * FROM tbl AS t1
JOIN tbl2 AS t2 ON t1.id = t2.foreignId
JOIN tbl3 AS t3 ON t2.id = t3.foreignId
WHERE t1.date > SOMEDATE
从我的理解,它将运行where语句,并只获得日期范围内的结果。然后它会遍历所有的t2,并且只尝试匹配连接到t1的id(这可能会使结果更小)。然后用这个较小的潜在结果,它将为T3做同样的事情并输出最终结果。
但它似乎不是这是如何工作?而这些表格会增加而不是变小。显然,我上面描述的更像是子查询? (注意,我说LIKE,我不知道subquerys是如何工作的)
JOIN如何工作,JOIN和子查询之间有什么区别?
我同时使用MySql和SQLite。我不知道这是否相关。
这不是一个MySQL的问题。它通常适用于任何SQL数据库。 (就像这个用户发布的大部分类似问题一样......) – 2012-06-22 20:49:46