gpt4 book ai didi

MySQL 选择一个字段中的值与另一表中的值匹配的行

转载 作者:行者123 更新时间:2023-11-29 14:43:12 25 4
gpt4 key购买 nike

我有下表:

  • 包含字段 job_id int、job_title varchar(50)、skill_cat_id varchar(50) 的 tbljobpost
  • tblappskills 包含字段 app_control Int、skill_cat_id Varchar(50)

tbljobpost:

+-------------------------------------+
| job_id | job_title | skill_cat_id |
+-------------------------------------+
| 1 | Programmer | 1,2,3,4,5,6,7 |
+-------------------------------------+

tblappskills:

+-----------------------------+
| app_control | skill_cat_id |
+-----------------------------+
| 1 | 1,2,4,5,6 |
| 2 | 1,2,3,7,4 |
| 3 | 1,2,3,4,5,6,7 |
| 4 | 7,1,4,5,6,2,3 |
+-----------------------------+

如何查询或过滤与 tbljobpost 具有相同 skill_cat_id(以逗号分隔)的 tblappskills?结果会是这样的:

+-----------------------------+ 
| app_control | skill_cat_id |
+-----------------------------+
| 3 | 1,2,3,4,5,6,7 |
| 4 | 7,1,4,5,6,2,3 |
+-----------------------------+

最佳答案

您的解决方案不适合first normal form

您应该将技能类别存储在单独的单元格中,如下所示:

+----------------------------+
| app_control | skill_cat_id |
+----------------------------+
| 1 | 1 |
| 1 | 2 |
| 2 | 1 |
| 4 | 4 |
+----------------------------+

然后,您就可以轻松JOIN表并选择与所需值匹配的行。 app-control-id 在表中出现多次并不重要。但是,如果您决定将其他数据放入该表中,则应该在单独的表中进行以避免冗余,如下所示:

您的新表(包含有关 app-control 的详细信息)与我上面提到的表 1 : (0..N) 相关。这很难解释,但很容易设计。如果你研究一下上面提到的范式,你就会很容易理解这一点。

关于MySQL 选择一个字段中的值与另一表中的值匹配的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7565442/

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