У меня есть запрос, который мне нужно выполнить, чтобы показать результаты поиска по проекту.Что должно произойти, мне нужно отсортировать результаты по «horseActiveDate», и это относится ко всем из них, за исключением любого объявления с 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
Будем весьма благодарны за любую помощь!