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

misner3456

这是我的完整代码:

<?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

tableB

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

tableC

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']变量确定,ORDERSQL代码的排列必须是DESC所有3个表中所有日期的最晚日期我将如何完成?

榕树

感觉我在想这个问题,但可能没有。有很多方法可以做到这一点。

以下内容UNION提供了相当大的灵活性,即,能够优化每个表的条件并仍然在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%查询的格式。无论如何,没有理由不为某些报告需求使用联合。甚至可以创建一个* gasp *view

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章