好的,我有表niveles,categoria和niveles_has_categoria
1 |子
2 |青少年
3 |成人
1 | 1 | 3
2 | 3 | 2
3 | 3 | 1
4 | 3 | 3
5 | 2 | 3
第三个表是另一个表的关系n:m,所以我试图通过两个表的id得到其他数据,这是我的查询
SELECT n.nombre_nivel, c.categoria FROM niveles n, categoria c WHERE n.idniveles in (SELECT n.idniveles FROM niveles n INNER JOIN niveles_has_categoria nc ON n.idniveles=nc.niveles_idniveles )
AND c.idcategoria in (SELECT c.idcategoria FROM categoria c INNER JOIN niveles_has_categoria nca ON c.idcategoria=nca.categoria_idcategoria)
但是它显示了这样的事情:
等级1 |儿童
等级1 |青少年
等级1 |成人
2级|孩子
2级|青少年
等级2 |成人
3级|孩子
等级3 |青少年
等级3 |成人
什么时候应该是这样的:
等级1 |成人
等级3 |青少年
3级|孩子
等级3 |成人
等级2 |成人
如果有人能提供帮助就会很棒!!
答案 0 :(得分:0)
尝试:
Select n.nombre_nivel, c.categoria from niveles_has_categoria nc
inner join niveles n on nc.niveles_idniveles = n.idniveles
inner join categoria c on nc.categoria_idcategoria = c.idcategoria
我们的想法是从具有您需要的结构的表开始,然后只在每个步骤中添加属于该记录的条目。