php - 子查询的替代方法

标签 php mysql

我现在正在做这个,但希望 SO 的好人看看它。它有效,但我认为使用子查询/嵌套查询会快得多,但仍在学习 MySQL 查询

嵌套/子查询方法将受到高度赞赏。 谢谢

//////
//Get Events

$query_display_events  = "SELECT E.id, E.er_mem_id, E.er_ev_name, E.er_ev_status FROM ".ER_EVENTS_MAIN." E WHERE E.er_ev_status=1 AND E.er_mem_id = '$user_id'";


$e_result = mysql_query($query_display_events) or die(header("Location: /er_error_page?error_msg=1"));

// print table
$data = '<table width="60%" border="0" cellpadding="0" cellspacing="0" class="bord_display_events">
<th>Event Name <th>Description<th>Starts<th>Ends<th>Status

';


while($e_row = mysql_fetch_assoc($e_result)) {


    //Get Events Time

$query_get_ev_time  = "SELECT T.er_ev_id, T.er_ev_start_date, T.er_ev_end_date FROM ".ER_EVENTS_TIME." T WHERE T.er_ev_id = '$e_row[id]'";


$t_result = mysql_query($query_get_ev_time) or die(header("Location: /er_error_page?error_msg=1"));
    while($t_row = mysql_fetch_assoc($t_result)) {

                    //Format date
                    $ev_start_time = date('Y-m-d g:i a', $t_row['er_ev_start_date']); 
                    $ev_end_time = date('Y-m-d g:i a', $t_row['er_ev_end_date']);


  $data .= "\n<tr>
              \n\t<td><b><a href=/readnews/$e_row[id]> $e_row[er_ev_name]</a></b>
              <td><font class=font_news_display_body>".mb_wordwrap(substr($e_row['er_ev_name'],0,170))."..."."
              <td><font class=font_news_display_body>$ev_start_time
              <td><font class=font_news_display_body>$ev_end_time

      \n</tr>
      ";

  }
}
$data .= "\n</table>\n";
////////

最佳答案

SELECT E.id, E.er_mem_id, E.er_ev_name, E.er_ev_status, 
       T.er_ev_id, T.er_ev_start_date, T.er_ev_end_date 
    FROM ER_EVENTS_MAIN E 
        INNER JOIN ER_EVENTS_TIME T 
            ON E.id = T.er_ev_id
    WHERE E.er_ev_status = 1 
        AND E.er_mem_id = '$user_id'

关于php - 子查询的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6914407/

相关文章:

php - 如何计算从数据库表中检索到的包含 PHP 中特定值的逗号分隔数组

php - 使用 MySQL 或 PHP 防止重复条目的正确方法

php mysql 和移动客户端,显示从 UTC 到不同时区的日期

php - 在oop中打印数据库中数据插入的消息

php - 是否可以在 Android 应用程序中处理来自 PHP 文件的 session

php - Mysql 查询执行时间需要秒才能得到结果?

php - 在哪里可以找到 joomla 内容源文件

javascript - 无法从 mysql 中删除 (file.size)

mysql - XAMPP、MAMP、MySQL 错误

php - 如何在具有一对多关系的表上执行内部连接?