有 3 个不同的 mysql 表,我的脚本使用 JOINS 查询数据库以输出 3 个表中每一个的最新结果。所有的工作都像它应该的那样工作,但是 mysql 数据库允许 JOINS 的方式,ORDER BY 将在您列出表时对结果进行排序,导致完成的输出没有按日期正确排序,因为结果来自 3 个不同的 MYSQL 表.
结果是按日期正确排序,仅在同一表中的其他结果旁边。请参阅下面的脚本和结果:(为简单起见,我将输出限制为 1)
$username = $_SESSION['username'];
$result = $mysqli->query("
SELECT
accounts.account_name,
cases.case_subject,
tasks.task_title,
accounts.accounts_date_last_edited,
cases.cases_date_last_edited,
tasks.tasks_date_last_edited
FROM
accounts,
cases,
tasks
WHERE
accounts.username = cases.username
AND cases.username = tasks.username
ORDER BY
accounts.accounts_date_last_edited DESC,
cases.cases_date_last_edited DESC,
tasks.tasks_date_last_edited DESC
LIMIT 1
");
if (!$result) { echo "Error Result5: " . $mysqli->error; } else {
echo "<table>";
echo "<tr><th>Item</th><th>Date</th></tr>";
while ($row = $result->fetch_array(MYSQLI_ASSOC))
{
echo "<tr>";
echo "<td>" . $row['account_name'] . "</td><br>";
echo "<td>" . $row['accounts_date_last_edited'] . "</td><br>";
echo "</tr>";
echo "<tr>";
echo "<td>" . $row['case_subject'] . "</td><br>";
echo "<td>" . $row['cases_date_last_edited'] . "</td><br>";
echo "</tr>";
echo "<tr>";
echo "<td>" . $row['task_title'] . "</td><br>";
echo "<td>" . $row['tasks_date_last_edited'] . "</td><br>";
echo "</tr>";
}
echo "</table>";
结果如下:他们将从上面列出的每个表格中列出 1 个项目。我再次尝试按 date_last_edited 排序,无论这些值来自哪个表。
Item Date
Shorley Homes 2013-11-02 04:02:34
Techical Testing Case Open 2013-11-03 07:17:36
Icons 2013-11-03 07:28:02