gpt4 book ai didi

sql - 复杂的 MySQL Order by 不工作

转载 作者:行者123 更新时间:2023-11-30 23:42:31 25 4
gpt4 key购买 nike

这是我正在使用的选择语句。排序时会出现问题。当它像下面这样时,它只按 t2.userdb_user_first_name 排序,不管我把它放在第一位还是第二位。当我删除它时,它按 displayorder 字段值对排序得很好。所以我知道那部分工作正常,但不知何故,两者的结合导致 first_name 覆盖它。我想要的是首先按显示顺序对记录进行排序,然后是其中的 first_name

SELECT t1.userdb_id
FROM default_en_userdbelements as t1
INNER JOIN default_en_userdb AS t2 ON t1.userdb_id = t2.userdb_id
WHERE t1.userdbelements_field_name = 'newproject'
AND t1.userdbelements_field_value = 'no'
AND t2.userdb_user_first_name!='Default'
ORDER BY
(t1.userdbelements_field_name = 'displayorder' AND t1.userdbelements_field_value),
t2.userdb_user_first_name;

编辑:这是我想要完成的。我想列出 userdb 表中的用户(不是新项目),以及有关存储在 userdbelements 中的用户的详细信息。我希望首先按 userdbelements.displayorder 排序,然后按 userdb.first_name 排序。我希望这是有道理的?感谢您的快速帮助!

编辑:抱歉消失了,这里是一些示例数据

用户元素

userdbelements_id   userdbelements_field_name   userdbelements_field_value  userdb_id
647 heat 1
648 displayorder 1 - Sponsored 1
645 condofees 1

用户数据库

userdb_id   userdb_user_name    userdb_emailaddress userdb_user_first_name  userdb_user_last_name
10 harbourlights info@harbourlightscondosminium.ca Harbourlights 1237 Northshore Blvd, Burlington
11 harbourview info@harbourviewcondominium.ca Harbourview 415 Locust Street, Burlington
12 thebalmoral info@thebalmoralcondominium.ca The Balmoral 2075 & 2085 Amherst Heights Drive, Burlington

最佳答案

您正在尝试使用无效的 ORDER BY。

ORDER BY (t1.userdbelements_field_name = 'displayorder' AND t1.userdbelements_field_value)

它必须引用表列或返回的别名列。

我真的无法理解这个查询是如何可能的,因为你已经限制了t1.userdbelements_field_name = newproject 然后您希望按等于 displayorder 的情况进行排序。

能否请您修改您的问题以准确说明您在 order by 子句中试图完成的是什么?

关于sql - 复杂的 MySQL Order by 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1859837/

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