sql - 获取参考列中提到的值
问题描述
我想加入两个表(Table1,Table2),它们应该返回 table1 引用列(12、14、18、19)中提到的引用的状态。表 2 包含 ID 的信息,这些信息映射到各个行中的引用,如下所示。
表格1:
列的数据类型是:ID 是整数类型,名称是字符变化,引用是字符变化,状态是字符变化。
ID Name reference status
10 PAX11 12,14,18 Undelivered
11 PAX193 Undelivered
12 ASD1 delivered
14 PAA delivered
90 PQA 19 Undelivered
18 PX Halt
19 ONA delivered
表 2:以下 3 列为整数类型。
sno ID reference
1 4 100
2 10 12
3 10 14
4 10 18
5 90 19
解决方案
你的数据模型是错误的。你应该努力修复它。正确的解决方法是有另一个表,每行id
和每行sno
。这称为联结表或关联表。
数据模型有什么问题?问题是reference
专栏。让我来计算一下:
- 一列应该包含一个值,而不是多个值。
- 值的数据类型应该是正确的,因此不应将数字存储在字符列中。
- 应正确定义外键。你不能用字符串列表来做到这一点。
- 关系型数据库的字符串处理能力比较弱。
- 使用的查询
reference
不能使用索引,并且统计数据可能会产生误导。 - 关系数据库具有这些用于存储列表的出色结构。它们被称为表,而不是字符串。
推荐阅读
- python - 使用 MongoDB/MongoEngine 从集合中获取 n 个文档
- reactjs - 解决 react-hooks/exhaustive-deps 的最佳方法
- mysql - 删除耗时过长且未完成
- java - Java 流视频高效
- python - ValueError:形状不匹配:标签的形状(收到的 (320,))应该等于 logits 的形状,除了最后一个维度(收到的 (32, 2))
- python - Python 类变量的范围?
- python - 使用 Selenium 访问嵌套的 iframe
- angular - 错误 TS2307:找不到模块 'rxjs/Operators' Azure DevOps Angular 8
- r - 如何在quantmod中处理特殊符号如GC=F
- postgresql - 从许多类似的表中查询 postgresql - 在 from 子句上动态更改表