gpt4 book ai didi

sql - 逗号分隔的字符串与FK引用的内容

转载 作者:行者123 更新时间:2023-12-03 15:25:47 26 4
gpt4 key购买 nike

我有三个表:

1)姓名

ID名称|名称
-------------
1 |沃尔克
2 |莫尔克
3 |蛋黄

2)公司

IDcompany |公司
------------------
1 |夜光的
2 |滔天

3)name_company,与名称(表1)和两个外键具有多对一关系

IDname_company | ID名称| ID公司
1 | 1 | 1个
2 | 2 | 1个
3 | 2 | 2

我需要一个查询,它会给我这个:

结果姓名|公司
--------------------------------------
1 |沃尔克|夜光的
2 |民间夜光的
3 |蛋黄|

我该怎么做?我使用SQLite,也许以后再切换到Firebird。

最佳答案

要从多个字符串中获取逗号分隔的字符串,请使用group_concat函数。
字符串来自子查询中返回的所有记录:

SELECT IDname AS IDresult,
Name,
(SELECT group_concat(Company)
FROM company
WHERE IDcompany IN (SELECT IDcompany
FROM name_company
WHERE IDname = name.IDname))
FROM name


或使用 GROUP BY定义的组中的所有记录:

SELECT name.IDname AS IDresult,
name.Name,
group_concat(company.Company)
FROM name
LEFT JOIN name_company ON name.IDname = name_company.IDname
LEFT JOIN company ON name_company.IDcompany = company.IDcompany
GROUP BY name.IDname

关于sql - 逗号分隔的字符串与FK引用的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19143603/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com