gpt4 book ai didi

php - 一个父行,另一个表中的多个子行。如何将它们全部排成一排?

转载 作者:行者123 更新时间:2023-11-29 04:30:21 24 4
gpt4 key购买 nike

我在本地一家非营利组织做志愿者,该组织在节日期间分发玩具和食物。我帮助他们的一种方式是将他们的礼物/食物请求放到网上。通过这种方式,他们无需在 15 小时内手动将 1,000 个左右的名称手动输入 Excel,只需单击一个链接即可在几秒钟内导出整个内容。

我的问题与如何在一次查询中从数据库中获取数据有关。我相信这是可能的,但我不能完全理解我能做到。

有一个父表,其中包含将收到礼物的 child 的家庭信息(每​​个家庭一行)。有一个包含家庭子女信息的子表(每个 child 一行,每个父行有很多行)。每个父行将有 1-3 个子行。

PARENT TABLE
-----------------------------
id
name
address
city

CHILDREN TABLE
-----------------------------
parent_id
name
gift1
gift2
gift3

我想在从数据库导出数据时将所有 child 的信息与 parent 的信息排成一行,以便将其放入 CSV 文件中。我知道我可以用两个单独的查询来做到这一点,但如果可能的话,我不想访问每个家庭的 child 的数据库。

我已经考虑了一个小时左右,但无法完全想出我将如何完成它。我确定我需要加入表格,但我不确定如何区分每个 child 并避免重复他们而不是让下一个 child (如果有的话)。

最佳答案

由于每个 parent 的子女数量可变,因此在 SQL 中可以完成的唯一方法是在单个记录中呈现所有礼物,分号分隔:

SELECT  p.*, GROUP_CONCAT(c.name, ': ', c.gift1, ', ', c.gift2, ', ', c.gift3 SEPARATOR ';')
FROM parents p
JOIN children с
ON c.parent_id = p.id
GROUP BY
p.id

这会给你这样的东西:

parent      children_and_gifst
Mr. Jones Alice: teddy bear, candy, drum; Bob: pup, sword, flute

,所有 child 和他们的礼物都在一栏中。

关于php - 一个父行,另一个表中的多个子行。如何将它们全部排成一排?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3512948/

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