Соединение двух циклов while для отображения на основе порядка дат

Итак, у меня есть этот запрос MySQL, который в основном просто два while циклы работают и отображают информацию, как они должны, проблема в том, что они отображают информацию как:

Test1, Test2, Test1, Test2, Test1, Test2, Test3, Test4, Test3, Test4, etc...

Как и следовало ожидать. Хотя я собираюсь расположить эти результаты в соответствии с датами их добавления в таблицу, поэтому, если один набор test 3 and test 4 были добавлены совсем недавно, это будет отображаться как:

test3, test4, test1, test2, test1, test2, test3, test4 etc...

Так что вроде переупорядочить эти результаты на основе дат? Я знаю, используя ORDER BY будет показывать только каждый раздел по порядку, но есть ли способ, используя мой код, который я могу смешать их ВСЕ и переставить оба date_added а также date_earned?

$user_id = $_SESSION['userid'];
$sql8 = "SELECT * FROM table1 ORDER BY date_added;";

if ($result8 = $conn->query($sql8)) {

/* fetch associative array */
while ($row8 = $result8->fetch_assoc()) {
printf ("%s (%s)\n", $row8["test1"], $row8["test2"]);
}
}

$user_id = $_SESSION['userid'];
$sql9 = "SELECT * FROM table2 ORDER BY date_earned";

if ($result9 = $conn->query($sql9)) {

/* fetch associative array */
while ($row9 = $result9->fetch_assoc()) {
printf ("%s (%s)\n", $row9["test3"], $row9["test4"]);
}
}

3

Решение

использовать союз всех

Select * from(
SELECT * FROM table1
union all
SELECT * FROM table2
) tab ORDER BY date_added,date_earned
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector