gpt4 book ai didi

mysql - 如何从多个表中按最新日期记录排序?

转载 作者:行者123 更新时间:2023-11-29 01:48:34 24 4
gpt4 key购买 nike

这是我的完整代码:

<?php $sid = $_SESSION['userid'];
$stmt = $pdo->prepare("
SELECT tableA.*, tableB.*, tableC.*
FROM tableA
LEFT JOIN tableB
ON tableA.tableAuserid = tableB.tableAuserid
LEFT JOIN tableC
ON tableA.tableAuserid = tableC.tableCuserid
WHERE tableA.tableAuserid = ?
;
");
$stmt->bindParam(1, $sid, PDO::PARAM_INT);
$stmt->execute();
$columns = $stmt->fetchAll();

foreach($columns as $column):
$tableAdate = $column['tableAdate'];
$tableBdate = $column['tableBdate'];
$tableCdate = $column['tableCdate'];
if ($tableAdate): ?>
<div><?php echo $tableAdate; ?></div>
<?php endif;
if ($tableBdate): ?>
<div><?php echo $tableBdate; ?></div>
<?php endif;
if ($tableCdate): ?>
<div><?php echo $tableCdate; ?></div>
<?php endif;
endforeach; ?>

我的 3 个数据库表是:tableA:

tableAid | tableAuserid | tableAdate
1 | 44 | 2018-07-13 11:09:11
2 | 44 | 2019-05-23 01:21:29

表B:

tableBid | tableBuserid | tableBdate
1 | 44 | 2019-08-11 17:41:01

表C:

tableCid | tableCuserid | tableCdate
1 | 44 | 2014-03-14 09:18:16

这是当前从我的代码中回显的结果:

2018-07-13 11:09:11
2019-08-11 17:41:01
2014-03-14 09:18:16
2019-05-23 01:21:29
2019-08-11 17:41:01
2014-03-14 09:18:16

但这是我希望通过代码实现的结果:

2019-08-11 17:41:01 (tableB)
2019-05-23 01:21:29 (tableA)
2018-07-13 11:09:11 (tableA)
2014-03-14 09:18:16 (tableC)

基本上每条记录都必须检索没有重复值,结果必须由 $_SESSION['userid'] 变量确定,SQL 代码的 ORDER 排列必须按最新日期 所有 3 个表中合并的所有日期的 DESC。我将如何做到这一点?

最佳答案

感觉我遗漏了问题的一些细微差别,但也许不是。有很多方法可以实现这一点。

以下UNION允许相当大的灵 active ,即能够细化每个表的条件并仍然在 SQL 方面进行排序。

SELECT tId, tUserId, tDate FROM tableA WHERE tUserId = ?
UNION ALL
SELECT tId, tUserId, tDate FROM tableB WHERE tUserId = ?
UNION ALL
SELECT tId, tUserId, tDate FROM tableC WHERE tUserId = ?
ORDER BY tDate DESC;

老实说,我写的不多。也许在很大程度上是因为 ORM(需要研究的东西),或者因为谈话倾向于设计。您第一次使用 left join 是我编写的大约 95% 的查询的格式。不管怎样,没有理由不使用工会来满足某些报告需要。甚至可以创建一个 view *喘息*

关于mysql - 如何从多个表中按最新日期记录排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57699568/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com