php - MYSQL如何比较两个表的价格并显示所有结果
问题描述
我有两个表 feed_new 和 feed_old,它们都有 id、name、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)
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
推荐阅读
- android - 在片段中复制数据库,然后在 Android Studio 中使用它
- javascript - 无法匹配任何路由。URL 段:Angular 8
- amazon-web-services - 为 Jenkins/Packer 配置正确放置 AWS 凭证
- java - Java RestTemplate.exchange 返回 400 空异常
- angular - 从派生组件到基础组件的角度嵌入模板
- javascript - 我似乎无法弄清楚为什么我的 score 函数有效,知道吗?
- html - CSS 网格:grid-row/column-start/end VS grid-area + grid-template-area
- mongodb - 计算开始和结束日期每天的总小时数
- django - Django 将数据加载到 postresql 数据库的最佳方式
- intellij-idea - 虽然没有使用 intellij mongo 错误