首页 > 解决方案 > 获取参考列中提到的值

问题描述

我想加入两个表(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

标签: sql

解决方案


你的数据模型是错误的。你应该努力修复它。正确的解决方法是有另一个表,每行id和每行sno。这称为联结表或关联表。

数据模型有什么问题?问题是reference专栏。让我来计算一下:

  • 一列应该包含一个值,而不是多个值。
  • 值的数据类型应该是正确的,因此不应将数字存储在字符列中。
  • 应正确定义外键。你不能用字符串列表来做到这一点。
  • 关系型数据库的字符串处理能力比较弱。
  • 使用的查询reference不能使用索引,并且统计数据可能会产生误导。
  • 关系数据库具有这些用于存储列表的出色结构。它们被称为,而不是字符串

推荐阅读