加入两个 while 循环以根据日期顺序显示
Joining two while loops to display based on date order
所以我有这个 MySQL 查询,它基本上只是两个单独的 while
循环 运行 并按应有的方式显示信息,问题是它们显示的信息如下:
Test1, Test2, Test1, Test2, Test1, Test2, Test3, Test4, Test3, Test4, etc...
如您所料。虽然我想要做的是根据添加到 table 的日期排列这些结果,所以如果最近添加了一组 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"]);
}
}
使用 union all
Select * from(
SELECT * FROM table1
union all
SELECT * FROM table2
) tab ORDER BY date_added,date_earned
所以我有这个 MySQL 查询,它基本上只是两个单独的 while
循环 运行 并按应有的方式显示信息,问题是它们显示的信息如下:
Test1, Test2, Test1, Test2, Test1, Test2, Test3, Test4, Test3, Test4, etc...
如您所料。虽然我想要做的是根据添加到 table 的日期排列这些结果,所以如果最近添加了一组 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"]);
}
}
使用 union all
Select * from(
SELECT * FROM table1
union all
SELECT * FROM table2
) tab ORDER BY date_added,date_earned