我正在使用以下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"
。仅当表中至少有一条记录时,它才起作用。更新:当您将不同的表连接到单个结果集中时,它会更加有用。