gpt4 book ai didi

php - 您如何使用 SQL 或 PHP 查找和列出稳定的室友匹配项?

转载 作者:可可西里 更新时间:2023-11-01 06:43:59 25 4
gpt4 key购买 nike

先决条件

我有两张 table 。一个表中的人员列表,以及他们如何在外键查找表中相互偏好。第一张表只是人员列表。另一个是他们都列出了一些他们希望有室友的其他人。

同 table 人:

  • 身份证、姓名等人员名单

表格选择:

  • 选择者列表(FK People ID)
  • 被选中者列表(FK People ID)

问题

如何使用 SQL(或 PHP)列出匹配项?也就是,他想合租的人名单上,哪里也有一个人?基本上你有一个选择器,其中包含一个选择列表。您将如何检查选择者是否也在他或她选择的人的列表中?

基本上,我想要一份包含每场稳定比赛的报告,即选择者也在至少一个他或她选择的名单上。

我猜一个 for 循环就可以解决问题,但您如何将第一次迭代放在一起?更不用说循环的其余部分了?

最佳答案

基于连接的解决方案:

SELECT
r1.name as name1,
r2.name as name2
FROM
roommate r1
JOIN
roommate_pair rp1 ON r1.id = rp1.chooser_id
JOIN
roommate r2 ON r2.id = rp1.choosen_id
JOIN
roommate_pair rp2 ON r2.id = rp2.chooser_id
WHERE
rp2.choosen_id = r1.id
GROUP BY
CONCAT(GREATEST(r1.id,r2.id),'-',LEAST(r1.id,r2.id))

最后一个 GROUP BY 用于删除交换列中的重复匹配项。 Working SQL Fiddle

关于php - 您如何使用 SQL 或 PHP 查找和列出稳定的室友匹配项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14419033/

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