[英]Query two tables ORDER BY date
因此,我有两个表格,显示类似于 Facebook 的提要之类的值。 他们都有一个名为date
的datetime
时间列,但我希望他们按日期 DESC 将它们一起排序。
我认为加入是正确的方式(?),但不太确定。 有人可以帮我吗?
目前我有两个不同的查询:
$status1 = "1";
$stmt1 = $link->prepare('
SELECT id
, ident_1
, ident_2
, date
, ident_1_points
, ident_2_points
FROM duel
WHERE active=?
ORDER
BY date
');
$stmt1-> bind_param('s', $status1);
和
$status2 = "OK";
$stmt2 = $link->prepare('SELECT id, ident, pp, date FROM sales WHERE status=? AND team IN (2, 3) ORDER BY date DESC LIMIT 20');
$stmt2->bind_param('s', $status2);
我该怎么做?
如果您想要一个包含两个表中数据的连续列表,并且整个内容按日期排序,那么您可能需要在子查询中使用 UNION 查询,然后对外部查询进行排序,如下所示:
SELECT *
FROM
(
SELECT id, ident_1, ident_2, date, ident_1_points, ident_2_points
FROM duel
WHERE active=?
UNION ALL
SELECT id, ident, pp, date, NULL, NULL
FROM sales
WHERE status=?
AND team IN (2, 3)
LIMIT 20
) list
ORDER BY date DESC
从您的描述中说实话,该要求并不是 100% 清楚(示例数据和预期结果在询问 SQL 问题时总是有帮助),但我认为这非常接近您的需求。
JOIN
似乎不合适,除非您想要一个结果集,其中每个表中的项目通过某个公共字段相互链接,然后将它们组合在一起,以便并排获取所有列,显示下一个表中的数据到与另一个表匹配的数据。
如果您不确定,我建议您查看教程/示例/文档,其中显示了 JOIN 的作用以及 UNION 的作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.