所以我有两张桌子:
+----------+ +---------------+
|tGathering| |tGatheredPeople|
+----------+ +---------------+
|cId | |cGatheringID |
|cPlace | |cPeople |
|... | +---------------+
+----------+
我希望在一个选择查询中检索一个地方的聚会数据(比如“柏林,德国”),并且在这些值中,将是一个逗号分隔的字符串,其中包含一个聚会中出现的所有人。
是否可以在一个查询中执行此操作?如果是的话,如何调用这种查询(你可能已经注意到,我在定义我要搜索的内容时遇到了困难)?
答案 0 :(得分:2)
示例用法是:
SELECT tGathering.*, GROUP_CONCAT(people.cPeople SEPARATOR ',') FROM tGathering
INNER JOIN tGatheredPeople AS people ON `people`.cGatheringID=`tGathering`.cId
GROUP BY people.cGatheringID
答案 1 :(得分:0)
是的,只要您在将应用于每个地点Id的函数中准备PeopleByPlaceId列表,就可以在一个查询中执行。 类似的东西:
Select t.*, PeopleByPlaceId(t.CId) as ListOfPeople
from TGathering t
在函数中,您将构建人名的连接列表。
如何在不使用函数的情况下执行此操作..我不知道: - )。