[英]php pdo code to compare data from two table and return in result
我有两张桌子
表格1
预订收据优惠券
100 701 501,502
100 702 503,504
100 703 505,506
表2
book1 receipt1 coupon1
100 701 501,502
100 702 503,504
我正在根据bookno从table1搜索数据。
现在我需要检查我是否输入bookno = 100并单击搜索
然后检查table2的所有收据和优惠券......
并且只返回table2中不存在的那些值。
在上面的例子中
table2中没有下面的行,但是在table1中
100 703 505,506
所以查询只返回这一行.....
PLZ帮我做这个......
<?php
$receipt = "";
$db=new PDO('mysql:host=localhost;dbname=circulation_scheme_prepaid','root','');
if($_POST && isset($_POST['search']))
{
$result=$db->prepare('SELECT DISTINCT receipt_no FROM scheme_master WHERE book_no2=:book_no2');
$result->bindParam(':book_no2',$_POST['book_no']);
$result->execute();
$data1 = $result->fetchAll();
$coupons = array();
foreach($data1 as $row)
{
$receipt[] = $row['receipt_no'];
}
}
?>
我认为查询可能看起来像这样
SELECT DISTINCT master.receipt_no
FROM scheme_master AS master
JOIN book_issue_return AS bir ON master.bookno2 = bir.book_no
WHERE master.book_no2=:book_no2 AND (
bir.receiptno NOT IN
(SELECT master.receipt_no FROM scheme_master AS master ) AND
bir.couponno NOT IN (SELECT master.receiptno FROM scheme_master AS master ))
接着:
$data1 = $result->fetchAll();
if (count($data1)) {
// return all the data
} else {
// return message
}
我根据要求及其工作改变了查询。
SELECT DISTINCT SM.receipt_no FROM scheme_master AS SM
JOIN book_issue_return AS bir ON SM.book_no2 = bir.book_no
WHERE SM.book_no2 = :book_no2 AND (SM.receipt_no NOT IN (SELECT bir.receiptno FROM book_issue_return AS bir))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.