gpt4 book ai didi

mysql - 我的查询应该如何设置?

转载 作者:行者123 更新时间:2023-11-29 19:27:13 25 4
gpt4 key购买 nike

我正在为我的俱乐部用 php 构建一个网站,其中包含成员(member)列表和发票。我的数据库设置如下:

家庭

ID
Family name
Adress
etc.

成员,带有家庭 ID 的链接

ID
Firstname
Family_ID

发票,带有家庭数据库或成员数据库的链接

ID
Amount
payed
Family_ID
Member_ID

有时我想向家人开具发票,例如每年的捐款。但有时我想向成员(member)本身开具他们正在参加的比赛的发票。

现在我想制作一个如下所示的概述页面

Family name1
Contribution invoice1
Member1
Match invoice 1
member2
Match invoice 2
Family name2
Contribution invoice2
Member1
Match invoice 3
member2
Match invoice 4
etc....

我当然可以通过它们对所有家庭的 en iterate 进行查询。对每一行进行家庭成员查询和发票查询。然后再次查询每个成员(member)的发票。但我认为应该有一个更复杂的查询来将它们全部放入一个大查询中。

我希望我的意思很清楚,你们可以帮助我。如果有任何问题,请告诉我。

最佳答案

没有演示数据有点困难。但我们假设采用以下方法:首先,我们构建临时 inv_combined 表(作为 from 部分中的选择),它将发票组合到家庭和成员并分配一个分别输入contributionmember。此类型稍后用于排序。然后,根据这个组合表,我们分别添加家庭和成员详细信息。最后,我们按 family.name、type、member.firstname 进行排序,这样结果会列出每个家庭的所有缴款发票,然后是所有成员发票。在您的 PHP 代码中,您只需浏览列表并注意姓氏、类型和成员名字的任何更改即可开始新的部分。希望它有帮助(并希望它有效):-)

select * from
( (select "Contribution" as type, if.*
from invoice if
where if.family_id is not null
)
UNION
(select "Member" as type, im.*
from invoice im
where if.member_id is not null
)
) inv_combined left join family on inv_combined.family_id = family.id
left join member on inv_combined_member_id = member.id
order by family.name, inv_combined.type, member.firstname

关于mysql - 我的查询应该如何设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42057728/

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