3

したがって、基本的に2つの単一whileループが実行され、必要に応じて情報が表示されるこのMySQLクエリがあります。これに関する問題は、次のような情報を表示することです。

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

ご想像のとおり。私がやろうとしているのは、これらの結果がテーブルに追加された日付に基づいて並べ替えることです。そのため、1 つのセットが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"]);
    }
}    
4

1 に答える 1

1

ユニオンオールを使用

Select * from(
SELECT * FROM table1 
union all
SELECT * FROM table2 
) tab ORDER BY date_added,date_earned
于 2015-12-18T10:35:48.720 に答える