我目前正在与一些表格,其中有关于以下布局。我们有一个产品表,其中包含产品的英文名称。我们还有一些产品的翻译,这些翻译保存在第二个表translation中。现在,对于一个旧版本,我需要将英文名称和所有的翻译放在一起。因此,如果我搜索productId = 1,我会得到这样的结果:
ProductId | english | translation
1 | Wood | NULL
1 | Wood | Holz
1 | Wood | Bois表格布局如下所示:
第一个表Product
ProductId |Name
1 | Wood
2 | Iron
3 | Copper
4 | Gold第二个表Translation
TranslationId | Name | fk_product | fk_anguage
1 | Holz | 1 | 1
2 | Eisen | 2 | 1
3 | Kupfer | 3 | 1
4 | Bois | 1 | 2现在,我的查询如下所示:
SELECT
ProductId, Product.Name AS english Translation.Name AS translation
FROM
Product
LEFT JOIN
Translation ON fk_product = ProductId到目前为止,这是有效的,我得到了所有的翻译,但没有英文名字。是否有可能在不同的语言中检索所有三个名称?
发布于 2020-04-30 20:33:30
你想要UNION ALL吗
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;https://stackoverflow.com/questions/61523362
复制相似问题