gpt4 book ai didi

mysql - 内连接查询 n :m

转载 作者:行者123 更新时间:2023-11-30 22:34:19 25 4
gpt4 key购买 nike

好的,我有表 niveles、categoria 和 niveles_has_categoria

idcategoria|类别

1| child

2|青少年

3|成人

idNivelCat|niveles_idniveles|categoria_idcategoria

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)

但它显示的是这样的:

nombre_nivel|类别

一级| child

一级|青少年

一级|成人

2 级| child

2 级|青少年

2 级|成人

3级| child

3 级|青少年

3级|成人

什么时候应该是这样的:

nombre_nivel|类别

一级|成人

3 级|青少年

3级| child

3级|成人

2 级|成人

如果有人能帮忙就太好了!!

最佳答案

尝试:

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

想法是从具有所需结构的表开始,然后在每个步骤中仅添加属于该记录的条目。

关于mysql - 内连接查询 n :m,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33029551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com