【发布时间】:2016-08-15 03:48:27
【问题描述】:
在我的数据库中,我有几个表具有相互引用的“多对多”关系,而我被教导进行此查询的方式是通过嵌入式查询。
我一直在阅读“多对多”关系,以及如何使用“内部联接”查询它们,但是,我似乎无法找到适合我正在寻找的查询,因为我的数据库将使用非常大的表我不希望我的代码出现性能问题。
SELECT salones.idSalon,
salones.Lat,
salones.Long,
recursos.idRecurso,
recursos.Recurso
FROM salones,
recursos,
salones_has_recursos
WHERE salones_has_recursos.salones_idSalon=salones.idSalon
AND salones_has_recursos.recursos_idRecurso=recursos.idRecurso
AND recursos.idRecurso IN (SELECT idRecurso
FROM salones_has_recursos
WHERE idRecurso IN (SELECT idRecurso
FROM recursos
WHERE recurso = 'Audiovisual'
)
)
我知道嵌入查询是性能杀手,但这是我想出如何从表中获取所需信息的唯一方法。有谁知道如何使用“内连接”命令获得同样的结果?
The resulting table should look a little like this
This is the all the data content of the tables
【问题讨论】:
-
sqlfiddle.com 请提供一些测试数据并显示所需的输出。
-
对“逗号连接”说不
标签: mysql inner-join relationships