我的问题是: 我有一个dbase查询(A),其中events_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) { }
我可以在table_A中显示结果。
但是我有一个dbase查询(B),其中events_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) { }
我可以在table_B中显示结果。
第一个查询和第二个查询的源表只有一个公共列 - date_time。
我必须做什么(以及如何)在一个表中显示events_A和events_B(ORDER BY date_time ASC)? - 以及将来 - 如何添加events_C(f.ex。类似于events_B)?
//我知道毕竟我需要格式化数据,使它们看起来很相似,并且可以在一个表格中显示。
答案 0 :(得分:0)
我不清楚你的问题是否要加入结果 - 也就是说,两个表中的信息是相关的,因为共享date_time
的两个记录应该是同一事件 - 或无关。
如果是后者,你就无法将它们有意义地结合起来;你实际上有两种不同的模式。
如果表A和B中的信息引用相同的事件,并且date_time
是唯一键,则可以执行以下操作:
SELECT * FROM events_A, events_B WHERE events_A.date_time=events_B.date_time;
......等。
我认为,从您使用PHP构建的查询中,您对SQL的功能以及何时想要使用它们的态度不是很强。可能值得阅读this guide之类的内容,以便在继续之前更好地处理数据库中应该执行的操作而不是PHP代码。