gpt4 book ai didi

php - 如果列不匹配,则从多个表中选择连接返回 null

转载 作者:行者123 更新时间:2023-11-30 22:56:18 26 4
gpt4 key购买 nike

我正在尝试创建一个 mysql 查询,指定 userid = x 的列和 userid = y 的其他列。

我的问题是(当前发生了什么)如果用户 x 的选定列与用户 y 的同一列的内容不匹配,查询将返回 null(因为我有一个检查是否声明变量和只有那些来自 else 的变量被打印...)。

我需要从 3 个表中进行选择:members、friends 和 account_type:

1º 来自 members.status(以及其他列,例如名称、month1-12 和 photo),其中 members.id = $_GET['id']
2º 来自 account_type.type 我需要比较 members.acc_type where members.id = $_SESSION['user_id'].
3º 来自 friends.cashed_month1-12(和列总数),其中 friends.friendID = $_GET['id']

如何指定每个列属于哪个 id?

我不知道如何在一个唯一的查询中做到这一点,我可以单独做到这一点...

实际上,这就是我所拥有的:

SELECT friends.*, members.*, account_type.* FROM members INNER JOIN friends ON friends.friendID = members.id
INNER JOIN account_type ON account_type.type = members.acc_type
WHERE friends.friendID = ? AND members.acc_type = ?")) {
$stmt->bind_param('isi', $_GET['id'], $_SESSION['acc_type'];

从 2º 开始,我遇到了这个问题,我选择了一个列,我真的需要指定从什么 ID 或从哪一行开始,因为有许多帐户具有相同的 acc_type,所以如果已连接,则指定从什么 ID 应该起作用用户具有与 friend 帐户不同的 acc_type。我的意思是,这个想法是:每个用户,无论 acc_type 是什么,都可以拥有不同 acc_types 的 friend 。

我测试过,如果连接用户和 $_GET['id'] 用户具有相同的 acc_type,一切正常,但如果我更改连接用户的 acc_type,查询将无法工作。

提前致谢!

最佳答案

最后我得到了一个有效的查询(我花了几个小时),这个答案可能对其他人有用,因为它对我有帮助:

SELECT members.*, account_type.*, friends.*, membersF.*
FROM members
INNER JOIN account_type ON members.acc_type = account_type.type
INNER JOIN friends ON friends.userID = members.id
INNER JOIN members AS membersF ON membersF.id = friends.friendID
WHERE members.acc_type = ?
AND friends.userID = ?
AND membersF.id = ?

$_SESSION['acc_type'], $_SESSION['user_id'], $_GET['id']

一些解释:

INNER JOIN account_type ON members.acc_type = account_type.type

这将返回连接用户的 acc_type,您将能够打印与该 account_type 对应的列(您可以添加许多列,除了 bonus)。

INNER JOIN friends ON friends.userID = members.id

在这里,它将返回该表中与用户 ID 对应的列。

INNER JOIN members AS membersF ON membersF.id = friends.friendID

最后,这将返回与该 ID 对应的成员的列,在本例中为好友 ID。

就是这样:)

关于php - 如果列不匹配,则从多个表中选择连接返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26238463/

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