Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php sql查询以联接三个表并选择数据(如果存在)_Php_Mysql - Fatal编程技术网

Php sql查询以联接三个表并选择数据(如果存在)

Php sql查询以联接三个表并选择数据(如果存在),php,mysql,Php,Mysql,下面是我的三个数据表 我需要从schememaster中选择book_no 2、receipt_no、createddate,并连接book issue和book return表 现在需要检查,如果图书已发行,则显示该图书的发行日期 如果书籍被退回,则需要根据这些书籍和收据编号显示returneddate 表名schemeMaster 表名bookissue 表名bookreturn 预期产量 我尝试下面的查询,获取数据,但不符合我的要求 我的查询显示所有行的出库日期和退货日期…在这些收据中,也

下面是我的三个数据表

我需要从schememaster中选择book_no 2、receipt_no、createddate,并连接book issue和book return表

现在需要检查,如果图书已发行,则显示该图书的发行日期

如果书籍被退回,则需要根据这些书籍和收据编号显示returneddate

表名schemeMaster

表名bookissue

表名bookreturn

预期产量

我尝试下面的查询,获取数据,但不符合我的要求

我的查询显示所有行的出库日期和退货日期…在这些收据中,也显示在图书退货表中不可用的日期

对于EX-在我上面的EX-中,有3个表包含数据

我需要从方案主表中选择所有数据,并显示issuedate和returndate(如果可用),否则此列显示空白

SELECT DISTINCT SM.book_no2 As Book, 
SM.created AS Printeddate, 
BI.issue_date AS issuedate, 
BR.return_date AS returndate,
BR.used_receipt AS totalreceipt 
FROM scheme_master SM 
LEFT JOIN book_issue BI 
ON (SM.book_no2 = BI.book_no ) 
LEFT JOIN book_return BR 
ON ( BR.book = BI.book_no ) 
WHERE SM.city = 'nagpur' 
AND SM.book_no2 BETWEEN 70 AND 70

这将产生与您的输出类似的结果,但不确定这是否是您想要的结果

通过您的查询,您得到了哪种输出?我在所有收据中都得到了重复的返回日期…我需要,如果书籍返回表中有收据,则显示返回日期,否则在返回日期列中此收据显示为空…但您的查询也将在所有收据中显示相同的问题和重复日期,即使这些收据在书籍中不存在退货表…我需要如果这些收据存在于图书退货表中,则显示此收据的退货日期,否则在退货日期列中显示空白对不起,我不在后面。如果有没有值的行,左连接将返回NULL。如果BOOKNO的所有值都等于70,则需要按某个值分组。
bookno         issuedate
 70            04-03-2015    
 70            05-03-2015
 70            06-03-2015
bookno   usedreceipt         returndate
 70          100             04-03-2015
 70          101             04-03-2015
 70          102             05-03-2015
 70          103             07-03-2015
  bookno receiptno   createdddate   IssueDate     ReturnDate    
  70      100         2015-02-20    04-03-2015    04-03-2015     
  70      101         2015-02-20    ----------    04-03-2015     
  70      102         2015-02-20    05-03-2015    05-03-2015     
  70      103         2015-02-20    06-03-2015    07-03-2015     
  70      104         2015-02-20    ---------     ---------
  70      105         2015-02-20    ---------     ---------      
  70      106         2015-02-20    ---------     ---------      
SELECT DISTINCT SM.book_no2 As Book, 
SM.created AS Printeddate, 
BI.issue_date AS issuedate, 
BR.return_date AS returndate,
BR.used_receipt AS totalreceipt 
FROM scheme_master SM 
LEFT JOIN book_issue BI 
ON (SM.book_no2 = BI.book_no ) 
LEFT JOIN book_return BR 
ON ( BR.book = BI.book_no ) 
WHERE SM.city = 'nagpur' 
AND SM.book_no2 BETWEEN 70 AND 70
select s.book_no2, s.reciept_no, s.createddate, b.issuedate, br.returndate
from schememaster as s
left join bookissue as b on b.bookno = s.book_no2
left join bookreturn as br on br.bookno = s.book_no2