我正在使用以下MySQL查询来检查几张表中日期在30天内的任何结果。

我想做的是还可以检查哪个表有结果,而不仅仅是MySQL查询是否总体上找到了结果。

我的一个表是Supplier_bank_details,因此,如果该表中有一条记录的日期小于30天,那我就回显银行详细信息,否则,如果它是我的另一个表supplier_invoices,那么我想回显发票信息。

这是到目前为止的内容,但是我真的是MySQL的新手,有点挣扎。请有人告诉我我需要做些什么才能使它起作用。

<?php require_once 'config.php'; ?>

<?php
$tbl_name = 'supplier_bank_details';
$tbl_name2 = 'supplier_invoices;

$query = "select * from $tbl_name, $tbl_name2 WHERE date > NOW() - INTERVAL 30 DAY ORDER BY date DESC";

$result = mysql_query($query) or die( mysql_error() );
$row = mysql_fetch_assoc($result);

if(mysql_num_rows($result) > 0) {

$datetime1 = new DateTime(); // Today's Date/Time
$datetime2 = new DateTime($row['date']);
$interval = $datetime1->diff($datetime2);


if(mysql_num_rows($tbl_name) > 0) {

$account_number = '****'.substr($row['account_number'], -4);

echo '<div class="contracts_area"><div class="table_header"></div>';
echo '<div class="request"><p>Bank Details Changed</p><p>'.$row['sort_code'].'</p><p>'.$account_number.'</p><p>about '.$interval->format('%d days ago').'</p></div>';
echo '</div>';

}else{

some invoice info here

}else{

echo '<div class="no_activity">No Recent Activity</div>';
}

}?>

最佳答案

不太优雅,但是您可以在查询中添加一个常量字段,该常量字段引用表名:

select *,"tab1" as tablename from tab1


每行中将出现一个名为tablename的列,其值为"tab1"。仅当表中至少有一条记录时,它才起作用。

更新:当您将不同的表连接到单个结果集中时,它会更加有用。

10-04 21:36
查看更多