[英]MYSQL How to compare price from two tables and show all results
我有兩個表 feed_new 和 feed_old,它們都有 id、name、price。 當用戶 go 進行價格檢查時,將能夠查看包含產品的整個列表,然后查看它們之間的不同(價格變化、產品刪除/缺失、庫存變化)
我進行查詢以提取新舊提要之間的差異,但我需要在一個查詢中顯示記錄的 rest 不僅不同,該怎么做?
$query = $this->db->query("SELECT fo.id, fo.name,fo.price,fo.product_code, fo.stock, fn.id AS id_new, fn.name AS name_new, fn.price AS price_new, fn.product_code AS product_code_new, fn.stock AS stock_new
FROM feed_old fo
LEFT JOIN feed_new fn ON (fn.product_code = fo.product_code)
WHERE fo.price <> fn.price OR fn.product_code IS NULL ");
這將導致:
id name price product_code stock id_new name_new price_new product_code_new stock_new
4659 Product 481 9997454 29 NULL NULL NULL NULL NULL
4665 Product1 326 9997460 0 4665 Product1 3260 9997460 0
4666 Product2 324 9997461 2 4666 Product2 3240 9997461 2
4644 Product3 217 9998929 42 NULL NULL NULL NULL NULL
然后我可以像這樣循環結果
<table class="table">
<?php foreach ($query as $product): ?>
<tr>
<td> <?php echo $product['name'] ?> </td>
<td>
<?php echo $product['price'] ?>
<?php if ($product['price_new'] != ''): ?>
<?php if $product['price'] <> $product['price_new']): ?>
<?php echo "New price" ?>
<?php endif; ?>
<?php elseif($product['price_new'] == '') ?>
<?php echo "Product deleted" ?>
<?php endif; ?>
</td>
</tr>
<?php endforeach; ?>
</table>
如果我理解正確,則無需在查詢中使用 fo.price <> fn.price 條件
$query = $this->db->query("SELECT fo.id, fo.name,fo.price,fo.product_code, fo.stock,
fn.id AS id_new, fn.name AS name_new, fn.price AS price_new, fn.product_code AS
product_code_new, fn.stock AS stock_new
FROM feed_old fo
LEFT JOIN feed_new fn ON (fn.product_code = fo.product_code)
此查詢將獲取每個帶有(或不帶有)相關新 Feed 的舊 Feed
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.