我的数据库中有三个与体育锻炼相关的表:
exercises(id, name)
tags(id, name)
exercises_tags(id_exercise, id_tag)
exercises_tags
表存储哪些标签对应于哪些练习。一个练习可以有多个标签。
示例:
exercises(id, name):
(1, 'squat')
tags(id, name)
(1, 'legs')
(2, 'quads')
(3, triceps)
exercises_tags(id_exercise, id_tag)
(1, 1)
(1, 2)
我想要一个查询,对于给定的练习名称,它返回相应的标记名称,在示例输入中:squat
; output = ['legs', 'quads']
.我知道如何在一个查询中得到练习id
,在另一个查询中得到对应的id_tag
,但我不知道如何把所有的放在一起得到最终的结果,我想我必须使用JOIN
,但我不知道如何执行两个JOIN
。
1条答案
按热度按时间mznpcxlj1#
如果您连接所有3个表,您将获得与输入练习相关的
tags
的所有行。Python的
fetchall()
将这些行作为子列表的列表返回。每个子列表只包含1个项目,通过在
for
循环中提取所有这些项目,您可以获得列表形式的结果:它将打印: