Mysql 这个内部连接查询到底意味着什么?

Mysql 这个内部连接查询到底意味着什么?,mysql,Mysql,我经常在这个网站上寻找答案,我通常会找到我要找的东西,但这次它真的很特别,所以我发了帖子 我正在编写一个我没有编写的代码,我希望有人能详细解释一下以下查询的含义: SELECT count(*) FROM ( SELECT Id_dormir FROM (dormir INNER JOIN dormir_photo AS DP ON Id_dormir = Id_dormir_photo) INNER JOIN communes as C ON

我经常在这个网站上寻找答案,我通常会找到我要找的东西,但这次它真的很特别,所以我发了帖子

我正在编写一个我没有编写的代码,我希望有人能详细解释一下以下查询的含义:

SELECT count(*) 
FROM ( SELECT Id_dormir 
       FROM (dormir INNER JOIN dormir_photo AS DP 
             ON Id_dormir = Id_dormir_photo) INNER JOIN communes as C ON 
             Commune_dormir = Id_commune  
       WHERE  Type_dormir=3 
       GROUP BY Id_dormir, Commune_dormir ) AS T
我不是mysql的老板,所有的内部连接和as都不是很清楚(这是一个搜索引擎的查询)

如果有人能帮忙,非常感谢,
Laurent

外部查询对内部查询返回的行数进行计数:

SELECT Id_dormir FROM dormir
    INNER JOIN dormir_photo AS DP ON Id_dormir = Id_dormir_photo
    INNER JOIN communes as C ON Commune_dormir = Id_commune 
WHERE  Type_dormir=3 GROUP BY Id_dormir, Commune_dormir 
在此查询中,作者从3个表中获取信息:
domir
domir\u photo
,但只有行,其中
Id\u dormir\u photo=Id\u dormir
和来自
communies
的行,其中
communie\u dormir=Id\u communie
。然后他过滤
Type\u dormir=3
的行,并将其分组为
Id\u dormir,communie\u dormir
,以便只有唯一的行ir,Commune_dormir

您的查询对行进行计数,其中唯一的
Id\u dormir、Commune\u dormir
和isset记录对位于
dormir\u photo
communies


我建议您阅读不同类型的
JOIN
操作,特别是
内部JOIN
(标准JOIN)和
左JOIN
,这些类型最适用。

外部查询统计内部查询返回的行数:

SELECT Id_dormir FROM dormir
    INNER JOIN dormir_photo AS DP ON Id_dormir = Id_dormir_photo
    INNER JOIN communes as C ON Commune_dormir = Id_commune 
WHERE  Type_dormir=3 GROUP BY Id_dormir, Commune_dormir 
在此查询中,作者从3个表中获取信息:
domir
domir\u photo
,但只有行,其中
Id\u dormir\u photo=Id\u dormir
和来自
communies
的行,其中
communie\u dormir=Id\u communie
。然后他过滤
Type\u dormir=3
的行,并将其分组为
Id\u dormir,communie\u dormir
,以便只有唯一的行ir,Commune_dormir

您的查询对行进行计数,其中唯一的
Id\u dormir、Commune\u dormir
和isset记录对位于
dormir\u photo
communies


我建议您阅读不同类型的
连接
操作,尤其是
内部连接
(标准连接)和
LEFT JOIN
,这种类型最适用。

1.使用更多的子查询将提高性能issue@Vijaykumar_Hadalgi为什么?子查询不是性能差的充分条件。SQL具有智能优化和索引,可以使子查询运行得更快。1.使用更多的子查询将提高性能issue@Vijaykumar_Hadalg为什么?子查询不是性能差的充分条件。SQL具有智能优化和索引,可以使子查询运行得更快。非常感谢。在这种情况下,如果dormir\u photo表中的某些行与dormir\u photo表中的某些行不匹配,那么这些行将不会出现在结果中?是的。如果希望有这些行,则必须使用
LEFT JOIN
有没有办法在答案标题上添加一个“已解决”的选项?点击答案旁边的绿色勾号。太快了!非常感谢。在这种情况下,如果dormir\u photo表中的某些行与dormir\u photo表中的某些行不匹配,那么这些行将不会出现在结果中?是的。如果您想拥有这些行,必须使用
LEFT JOIN是否有办法在答案标题上添加“已解决”选项?单击答案旁边的绿色勾号。