我正在开发一个家庭项目,我必须从两列中选择多个字段,我使用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的新手
答案 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
表匹配的相关行,则不会从原始表中获取行。