gpt4 book ai didi

if条件下的MySQL查询

转载 作者:太空宇宙 更新时间:2023-11-03 12:22:33 25 4
gpt4 key购买 nike

我有以下表格:

用户:

id,username,owner

管理员

id,username,owner

交易:

id,sender_id,sender_type

每个用户都可以归一个管理员所有每个管理员可以由另一个管理员拥有

我正尝试在某些访问级别上工作,我想检索具有通过 PHP 生成的列表的发件人部分的所有者的查询行。

为此,我需要根据我拥有的数据获取发件人的所有者,而无需更改数据库结构:

SELECT 
* ,
IF (t.sender_type='admin',
( SELECT owner AS qowner
FROM admins
WHERE id=t.sender_id),
( SELECT owner AS qowner FROM users
WHERE id=t.sender_id)
) AS qowner
FROM `transactions` t
WHERE qowner IN ('admin22','admin33','admin44','admin66')

我不断收到此错误:“where 子句”中的未知列“qowner”

我现在卡在这上面了。我将感谢所有的帮助。谢谢!

最佳答案

我认为您似乎在尝试从 WHERE 子句中的子选择中引用列。

但是不需要子选择:-

SELECT * ,
IF (t.sender_type='admin', a.owner, b.owner) AS qowner
FROM transactions t
LEFT OUTER JOIN admins a ON t.sender_id = a.id
LEFT OUTER JOIN users b ON t.sender_id = a.id
HAVING qowner IN ('admin22','admin33','admin44','admin66')

关于if条件下的MySQL查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19184525/

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