У меня есть запрос, который мне нужно выполнить, чтобы показать результаты поиска для проекта. Что должно случиться, мне нужно отсортировать результаты с помощью «horsesActiveDate», и это относится ко всем из них, за исключением любого объявления с adtypesID = 7. Эти результаты сортируются по дате, но они всегда должны появляться после всех других объявлений.MYSQL - объединение двух результатов в одном запросе
Таким образом, у меня будет все мои объявления в результирующем наборе, которые будут упорядочены по активной дате И 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
Любая помощь, которая может быть предоставлена, будет весьма признателен!
Благодарим вас за то, что помогли мне в этом. Я пробовал что-то подобное, но делал ошибки. Это работало как прелесть!Цените свою помощь много. – Chad