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代码>是否有办法在答案标题上添加“已解决”选项?单击答案旁边的绿色勾号。