SELECT * FROM之间的区别

时间:2019-03-16 16:43:15

标签: sql join left-join where-clause

这两个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 ;

结果是:第一个:

query one

第二个查询的结果是:

query two

为什么第一个返回一个结果,第二个返回2行?

1 个答案:

答案 0 :(得分:0)

下面的查询返回单个数据,因为您提供了一个特定的ID,该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 记录匹配商品数据记录的类别表中。并且由于左连接提取第一个表的所有记录和第二个表的匹配记录。您将获得两条记录。

作为参考,您可以点击以下链接。

left join