从多个数据库查询

时间:2014-10-02 19:06:25

标签: php mysql

我有一个为多个网站设置的票务系统。数据库中的每个表在所有网站上都是相同的。

我的问题是如何查询每个数据库中的多个表?

示例:

  • 我在数据库狗中打开了5张门票
  • 我在数据库猫中打开了2张门票

我需要编写一个查询,告诉我最近提交的门票是什么。

所以我想知道门票的来源和发布的时间。

这是我尝试过但需要一些指导,因为我以前从未使用过多个数据库。

$database_1 = 'dogs';
$database_2 = 'cats';

$recent = DB::getInstance()->query("
SELECT `st_id`,`dates`,`complex` FROM {$database_1}.`support_ticket` WHERE `status` = 'OPEN' ORDER BY `dates` DESC LIMIT 1
UNION ALL
SELECT `st_id`,`dates`,`complex` FROM {$database_2}.`support_ticket` WHERE `status` = 'OPEN' ORDER BY `dates` DESC LIMIT 1 ");

foreach($recent->results() as $r):
?>
<div class="box-bottom">Most Recent: <?php echo escape($r->complex); ?> - 
<?php echo escape (date("F d, Y - h:i a", strtotime ($r->dates))); ?></div>
<?php endforeach ?>

1 个答案:

答案 0 :(得分:1)

只需使用一个ORDER BY语句

SELECT `st_id`,`dates`,`complex` 
FROM {$database_1}.`support_ticket` 
WHERE `status` = 'OPEN' 
UNION ALL
SELECT `st_id`,`dates`,`complex` 
FROM {$database_2}.`support_ticket` 
WHERE `status` = 'OPEN' 
ORDER BY `dates` DESC LIMIT 1