首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用联接、交叉联接将SQL中的全球化存储值组合到单个表中

如何使用联接、交叉联接将SQL中的全球化存储值组合到单个表中
EN

Stack Overflow用户
提问于 2019-07-13 03:55:23
回答 1查看 39关注 0票数 0

我们有与不同实体相关的各种表,我们希望在这些实体中全球化存储的值。我们不知道如何继续在技术上,并开放给任何形式的帮助,提示或提示。

语言

代码语言:javascript
复制
ID | Culture | Description |  
---+---------+-------------+
1  | EN      | English     |
2  | FR      | French      | 
3  | ES      | Spanish     |

作业

代码语言:javascript
复制
ID | Description |  
---+-------------+
1  | Doctor      | 
2  | Firefighter |  

JobGlobalization

代码语言:javascript
复制
ID | JobID | Description | Culture |
---+-------+-------------+---------+
1  | 1     | Docteur     | FR      |
2  | 1     | Doctora     | ES      |

我们试图使用交叉连接获得以下内容:

代码语言:javascript
复制
ID | Description | Culture |
---+-------------+---------+
1  | Doctor      | EN      |
1  | Doctor      | FR      |
1  | Doctor      | ES      |
2  | Firefighter | ES      |
2  | Firefighter | ES      |
2  | Firefighter | ES      |

使用的查询:

代码语言:javascript
复制
SELECT Job.ID, Job.Description, Language.Culture
CROSS JOIN Language
ORDER BY Job.ID

我们在儿童全球化表上经历了不同的连接,以便将各实体联系在一起,但是结果集一直在以错误的方式成倍增长。

我们希望为每个父实体,无论它是否有任何相关的子实体,为语言表中的每个区域性选择一行。在子表中没有关联记录的情况下,说明列默认为父实体。

由此产生的表格应如下:

代码语言:javascript
复制
ID | Description | Culture |
---+-------------+---------+
1  | Doctor      | EN      |
1  | Docteur     | FR      |
1  | Doctora     | ES      |
2  | Firefighter | EN      |
2  | Firefighter | FR      |
2  | Firefighter | ES      |

我们想到的条件是,如果子表中没有相应的记录,就会从父表'Job‘中选择'Description’列。

例如:

代码语言:javascript
复制
IIF(JobGlobalization.Description IS NOT NULL, JobGlobalization.Description, Job.Description)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-13 13:04:47

我们试图使用交叉连接获得以下内容:

这将产生您描述的结果集:

代码语言:javascript
复制
SELECT j.ID, j.Description, l.Culture
FROM Job j CROSS JOIN
     Language l
ORDER BY j.ID, l.Culture;

您可以将它插入到JobGlobalization中(尽管您可能想先截断它)。或者您也可以使用CREATE TABLE AS (或与您的数据库等效的)从头创建JobGlobalization

然后,您需要用区域性的适当值更新此表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57015990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档