gpt4 book ai didi

sql - MYSQL - 在一个查询中合并两个结果

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

我有一个查询需要执行以显示项目的搜索结果。需要发生什么,我需要按“horsesActiveDate”对结果进行排序,这适用于除 adtypesID=7 的任何广告之外的所有结果。这些结果按日期排序,但它们必须始终排在所有其他广告之后。

因此,我将按事件日期和 adtypesID != 7 对结果集中的所有广告进行排序。之后,我需要将所有 adtypesID=7 按事件日期排序并附加在所有结果的底部.

我希望将其放入一个查询而不是两个查询中,然后在 PHP 中将它们附加在一起。代码的编写方式,我必须找到一种方法来在一个查询中获取所有内容。

这是我的原始查询,在我不得不添加具有不同排序要求的 adtypesID=7 之前,它一直运行良好。

这是现在存在的查询,不考虑用于排序的 adtypesID。

SELECT 
horses.horsesID,
horsesDescription,
horsesActiveDate,
adtypesID,
states.statesName,
horses_images.himagesPath

FROM horses

LEFT JOIN states ON horses.statesID = states.statesID
LEFT JOIN horses_images ON horses_images.himagesDefault = 1 AND horses_images.horsesID = horses.horsesID AND horses_images.himagesPath != ''

WHERE
horses.horsesStud = 0
AND horses.horsesSold = 0
AND horses.horsesID IN
(
SELECT DISTINCT horses.horsesID
FROM horses
LEFT JOIN horses_featured ON horses_featured.horsesID = horses.horsesID
WHERE horses.horsesActive = 1
)

ORDER BY adtypesID, horses.horsesActiveDate DESC

我的第一个想法是执行两个查询,其中一个查找所有不包含 adtypesID=7 的广告并按照查询对它们进行排序,然后运行第二个查询以仅查找那些包含 adtypesID=7 的广告并对它们进行排序按日期。然后获取这两个结果并将它们相互附加。因为我需要将所有这些都放入一个查询中,所以我不能使用 php 函数来完成这项工作。

有没有办法在mysql中将两个查询结果依次合并?有没有更好的方法来运行此查询来完成此排序?

理想的结果如下(我修改了列名以便它们更短):

   ID  | Description  | ActiveDate  |  adtypesID  | statesName  | himagesPath
___________________________________________________________________________

3 | Ad Text | 06-01-2010 | 3 | OK | image.jpg
2 | Ad Text | 05-31-2010 | 2 | LA | image1.jpg
9 | Ad Text | 03-01-2010 | 4 | OK | image3.jpg
6 | Ad Text | 06-01-2010 | 7 | OK | image5.jpg
6 | Ad Text | 05-01-2010 | 7 | OK | image5.jpg
6 | Ad Text | 04-01-2010 | 7 | OK | image5.jpg

如能提供任何帮助,我们将不胜感激!

最佳答案

我不确定 MySQL 中的确切语法,但类似

ORDER BY case when adtypesID = 7 then 2 else 1 end ASC, horses.horsesActiveDate DESC

可以在许多其他 SQL 方言中使用。请注意,大多数 SQL 方言都允许 order by 不仅是一列,而且是一个表达式。

关于sql - MYSQL - 在一个查询中合并两个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3151865/

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