请问这两个SQL查询有什么区别?
SELECT
articles.idarticles, articles.titre, articles.contenu,
categories.titre AS categorie
FROM
articles, categories
WHERE
idarticles = 2 ;
还有这个
SELECT
articles.idarticles, articles.titre, articles.contenu,
categories.titre AS categorie
FROM
articles
LEFT JOIN
categories ON category_id = categories.idCategories
WHERE
idarticles = 2 ;
结果是:对于第一个:
第二个查询的结果是:
为什么第一个返回一个结果,第二个返回2行?
下面的查询返回单个数据,因为您提供了一个特定的id,它满足获取单行的条件
SELECT articles.idarticles, articles.titre, articles.contenu,categories.titre AS categorie FROM articles, categories WHERE idarticles=2 ;
但在第二次查询
SELECT articles.idarticles, articles.titre, articles.contenu,categories.titre AS categorie FROM articles LEFT JOIN categories ON category_id=categories.idCategories WHERE idarticles=2 ;
你已经完成了左边连接的文章和类别,其中有2条记录,其中idarticles = 2在类别表中,它们与文章数据的记录相匹配。因为左连接会拉出第一个表的所有记录并匹配第二个表的记录。你得到两条记录。
供参考,您可以按照以下链接。