我的问题是:我有一个数据库查询(a),其中包含事件_a和今天日期
$STH_1 = $DBH_R->query("SELECT table_name
FROM information_schema.tables
WHERE table_name
LIKE 'v_c_ei'_9%' ");
$stmts_1 = array();
while (($row_1 = $STH_1 -> fetch_assoc()) !== null){
$table_name = $row_1['table_name'];
$stmts_1[] = sprintf("
SELECT *
FROM $table_name
WHERE date_time = $today_date
");
}
$stmt_1 = implode("'nUNION'n", $stmts_1);
$stmt_1 .= "'nORDER BY date_time ASC";
$STH_5_2 = $DBH_R->query($stmt_1);
while (($row_5_2 = $STH_5_2 -> fetch_assoc()) !== null) { }
并且我可以在表A中显示由此得到的结果。
但我有一个数据库查询(B),其中包含事件_B和今天日期
$table_name_2 = 'v_c_e';
$STH_e = $DBH_R->query("
SELECT *
FROM `$table_name_2`
WHERE date_time = $today_date
");
while (($row_e = $STH_e -> fetch_assoc()) !== null) { }
并且我可以在表B中显示由此得到的结果。
第一个查询和第二个查询的源表只有一个公共列date_time。
我必须做什么(以及如何)在一个表中显示events_A和events_B(ORDER BY date_time ASC)?-对于未来,如何添加events_C(例如类似于events_B)?
//我知道,毕竟我需要格式化数据,使它们看起来相似,并且可以显示在一个表中。
我不清楚您的问题是想加入结果,也就是说,两个表中的信息是相关的,因为共享date_time
的两个记录应该是同一事件,还是不相关。
如果是后者,你就无法将它们有意义地结合起来;实际上有两种不同的模式。
如果表A和表B中的信息指的是相同的事件,并且date_time
是唯一的密钥,则可以执行以下操作:
SELECT * FROM events_A, events_B WHERE events_A.date_time=events_B.date_time;
或类似物。
我认为,从您在PHP中构建的查询来看,您对SQL的功能以及何时使用它们不是很了解。在继续之前,可能值得阅读类似本指南的内容,以便更好地了解应该在数据库中而不是在PHP代码中进行的操作。