【发布时间】:2013-11-30 01:16:51
【问题描述】:
我想从我的表 revistas 中选择所有数据,并从其他表中选择匹配的值而不重复数据。
这是我的数据库的图像 https://dl.dropboxusercontent.com/u/31988662/a.png
我想完全按照以下方式导出数据,所有 idrevistas 与其他表中的所有匹配 id
idrevistas idsentido_efeito idamostra idnatureza_efeito idfatores_afeta_efeito
---------------------------------------------------------------------------------
1 1 1,2,3 1 1
2 2 2 2 2
3 1 2,3 1,2 2
4 2 1,2 4,5 2,1
我能得到的最接近的是这样的简单连接:
SELECT rev.nome_revistas,se.nome_sentido_efeito, rev.titulo_revistas, rev.subtitulo_revistas_autor_ano, rev.abstract, group_concat(ams.nome_amostra),se.nome_sentido_efeito,group_concat(ne.nome_natureza_efeito), fae.nome_fatores_afeta_efeito
FROM revistas_has_amostra as rha
JOIN revistas as rev ON rha.revistas_idrevistas = rev.idrevistas
JOIN amostra as ams ON rha.amostra_idamostra = ams.idamostra
JOIN sentido_efeito as se ON rev.sentido_efeito_id = se.idsentido_efeito
JOIN revistas_has_natureza_efeito as rhne ON rev.idrevistas = rhne.revistas_idrevistas
JOIN natureza_efeito as ne ON rhne.natureza_efeito_idnatureza_efeito = ne.idnatureza_efeito
JOIN revistas_has_fatores_afeta_efeito as rhfae ON rev.idrevistas = rhfae.revistas_idrevistas
JOIN fatores_afeta_efeito as fae ON rhfae.fatores_afeta_efeito_idfatores_afeta_efeito = fae.idfatores_afeta_efeito
GROUP BY rev.idrevistas
但这会在 amostra_id 表中多次返回匹配项,如下所示
idrevistas idsentido_efeito idamostra idnatureza_efeito id_fatores_afet..
-----------------------------------------------------------------------------------
1 1 1,2,3,1,2,3,1,2,3 1,1,1 1
2 2 2 2 2
3 1 2,3,2,3 1,2,1,2 2
4 2 1,2,1,2 4,5,4,5 2,1
【问题讨论】:
标签: mysql select join left-join inner-join