首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >左连接表,但也保留左表中匹配的条目

左连接表,但也保留左表中匹配的条目
EN

Stack Overflow用户
提问于 2020-04-30 20:26:15
回答 1查看 24关注 0票数 0

我目前正在与一些表格,其中有关于以下布局。我们有一个产品表,其中包含产品的英文名称。我们还有一些产品的翻译,这些翻译保存在第二个表translation中。现在,对于一个旧版本,我需要将英文名称和所有的翻译放在一起。因此,如果我搜索productId = 1,我会得到这样的结果:

代码语言:javascript
复制
ProductId | english | translation
1         | Wood    | NULL
1         | Wood    | Holz
1         | Wood    | Bois

表格布局如下所示:

第一个表Product

代码语言:javascript
复制
ProductId |Name
1         | Wood
2         | Iron
3         | Copper
4         | Gold

第二个表Translation

代码语言:javascript
复制
TranslationId | Name    | fk_product | fk_anguage
1             | Holz    | 1          | 1
2             | Eisen   | 2          | 1
3             | Kupfer  | 3          | 1
4             | Bois    | 1          | 2

现在,我的查询如下所示:

代码语言:javascript
复制
SELECT 
   ProductId, Product.Name AS english Translation.Name AS translation
FROM 
   Product
LEFT JOIN 
   Translation ON fk_product = ProductId

到目前为止,这是有效的,我得到了所有的翻译,但没有英文名字。是否有可能在不同的语言中检索所有三个名称?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-30 20:33:30

你想要UNION ALL

代码语言:javascript
复制
SELECT p.ProductId, p.Name AS english t.Name AS translation
FROM Product p JOIN 
     Translation t
     ON t.fk_product = p.ProductId
UNION ALL
SELECT p.ProductId, p.Name, p.Name
FROM Product;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61523362

复制
相关文章

相似问题

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