gpt4 book ai didi

mysql - 从连接表中选择名称,其中连接表行 id 在父表列集中

转载 作者:行者123 更新时间:2023-11-29 07:24:06 24 4
gpt4 key购买 nike

我有两张 table 。 技能用户技能

技能行

type:1
name:'Web Development'
id: 1
<小时/>
type:1
name:'Graphic Design'
id: 2

用户技能行

user_id: 1
skill_type: 1
skills: '1,2'

以下查询仅返回第一行,而不是像我预期的那样返回两行。我想知道为什么,以及这种类型的加入是否可能/一个好的做法。

查询

SELECT b.name,b.type 
FROM userskill a
JOIN skill b ON a.skill_type=b.type
WHERE a.user_id="1" AND b.id IN(a.skills)

您可能想知道为什么查询不尝试限制 skill_type 这是因为我想返回所有用户技能的列表,然后可以在应用程序中按类型排序。我认为这比执行许多查询更合适。

最佳答案

用户技能表有一个具有多个值的属性,您应该允许用户技能表的多行具有相同的信息但不同的技能

示例:

user_id skill_type skill
1 1 1
1 1 2

在这种情况下,主键将是所有属性

引用:How to store multiple values in single column where use less memory?

编辑

查询将是:

SELECT b.name,b.type 
FROM userskill a
JOIN skill b ON a.skill_type=b.type
WHERE a.user_id="1"

关于mysql - 从连接表中选择名称,其中连接表行 id 在父表列集中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35103038/

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