为什么我的查询结果没有显示任何行

时间:2014-07-17 06:25:51

标签: mysql inner-join

我正在开发一个家庭项目,我必须从两列中选择多个字段,我使用INNER join来组合这两个表。我有一个列来匹配字段但我必须检查两个条件来选择字段 我的查询代码如下

$frm_dt='2014-02-26';
  $to_d='2014-07-17';
      $sel_ser=mysql_query("SELECT m.counterSalesMasterId, m.date, m.cust_name, m.cust_doctor, d.ProductId, d.productBatchId, d.qty FROM sales_master as m INNER JOIN sales_details as d ON m.counterSalesMasterId=d.counterSalesMasterId WHERE (m.date BETWEEN $frm_dt AND $to_d) AND (d.sales_h1_flag='Y')")or die(mysql_error());    
        ECHO MYSQL_NUM_ROWS($sel_ser);
        while($res1=mysql_fetch_array($sel_ser))
        {
                       print_r($res1);

        } 

我必须选择给定日期之间的ID并在另一个表sales_detail中匹配此ID,我必须检查上面提到的另外两个条件

Plz帮助我,因为我是JOIN的新手

1 个答案:

答案 0 :(得分:0)

在您的日期附近加上单引号。

$sel_ser=mysql_query("
    SELECT m.counterSalesMasterId, m.date, m.cust_name, m.cust_doctor, d.ProductId, d.productBatchId, d.qty 
    FROM sales_master as m 
        INNER JOIN sales_details as d ON m.counterSalesMasterId=d.counterSalesMasterId 
    WHERE (m.date BETWEEN '$frm_dt' AND '$to_d') AND (d.sales_h1_flag='Y')")or die(mysql_error());

如果这仍然不起作用,则回显查询并发布带有日期的查询。另外,请确保表中的日期字段实际上是日期字段,而不是字符串字段(varchar等)。

此外,对于Inner Join,如果要加入的表不包含与原始From表匹配的相关行,则不会从原始表中获取行。