mySQL结合搜索结果

时间:2012-01-31 23:34:20

标签: php mysql

我的问题是: 我有一个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)?

//我知道毕竟我需要格式化数据,使它们看起来很相似,并且可以在一个表格中显示。

1 个答案:

答案 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代码。