即使左联接为空也显示字段

阿贡·克泽瓦(Agung Kessawa)

我有3个表:productorder_detailsorders

我想将它们加入一个查询中,以显示用户购买的所有产品。

这是我的代码:

SELECT products.id AS id,
      products.kode  AS kode,
      products.sub_kode AS sub_kode,
      products.nama AS nama,
      products.barcode AS barcode,
      products.harga AS harga,
      IFNULL(products.keterangan_kemasan, ' ') AS keterangan_kemasan,
      IFNULL(products.keterangan_ukuran ,' ') AS keterangan_ukuran,
      SUM(IFNULL(order_details.jumlah_pesanan_akhir,0)) AS jumlah,
      IFNULL(order_details.jumlah_pesanan_akhir,0) AS jumlah_beli,
      orders.idmember AS member
    FROM products LEFT JOIN (orders,order_details)
    ON (orders.id = order_details.idorder
      AND order_details.product_kode = products.kode
      AND order_details.product_subkode = products.sub_kode)
    WHERE products.nama LIKE '%asdu%'
      AND IFNULL(orders.idmember, 21376) = 21376     
    GROUP BY products.kode, products.sub_kode
    ORDER BY IFNULL(order_details.jumlah_pesanan_akhir,0) DESC,
      products.nama ASC
    LIMIT 30;

发生的情况是,当客户不再购买该商品时,该商品将不会显示。同时,我希望它们被显示。

如果我从查询中删除它,

AND IFNULL(orders.idmember, 21376) = 21376     

一切都会很好地显示。但是它将显示其他人的订购历史记录。

西里尔·甘登(Cyril Gandon)

因此,据我了解,您想要所有看起来像的产品%asdu%,并且想知道客户21376是否购买了它们。

用户的ID必须是LEFT JOIN子句的一部分,否则它将被过滤掉。

SELECT products.id AS id,
      products.kode  AS kode,
      products.sub_kode AS sub_kode,
      products.nama AS nama,
      products.barcode AS barcode,
      products.harga AS harga,
      IFNULL(products.keterangan_kemasan, ' ') AS keterangan_kemasan,
      IFNULL(products.keterangan_ukuran ,' ') AS keterangan_ukuran,
      SUM(IFNULL(order_details.jumlah_pesanan_akhir,0)) AS jumlah,
      IFNULL(order_details.jumlah_pesanan_akhir,0) AS jumlah_beli,
      orders.idmember AS member
    FROM products 
        LEFT JOIN order_details
            ON order_details.product_kode = products.kode
            AND order_details.product_subkode = products.sub_kode
        LEFT JOIN orders
            ON orders.id = order_details.idorder
            AND orders.idmember = 21376
    WHERE products.nama LIKE '%asdu%'
    GROUP BY products.kode, products.sub_kode
    ORDER BY IFNULL(order_details.jumlah_pesanan_akhir,0) DESC,
      products.nama ASC
    LIMIT 30;

我已经重写了联接,以清楚地了解联接的内容。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

左联接,即使SQL为空

来自分类Dev

按日期左联接,将结果分组,在分组结果中显示所有日期(即使为空)

来自分类Dev

左联接,右为空

来自分类Dev

mysql按字段顺序显示行,即使为空

来自分类Dev

即使某些对象为空,也显示该字段

来自分类Dev

左联接不会将不匹配的行返回为空

来自分类Dev

如果使用左联接表中不存在数据,如何将记录显示为空

来自分类Dev

即使字段为空也发送联系表格

来自分类Dev

如果绑定字段为null,如何使用左联接发出请求。MySQL数据库

来自分类Dev

RethinkDB-左联接,其中joined_table.identifier为空?

来自分类Dev

ElasticSearch获取字段,即使它们为空或为空

来自分类Dev

字段验证显示空指针异常,即使不为空

来自分类Dev

左联接中的错误空引用

来自分类Dev

Linq中的左联接与可为空的引用

来自分类Dev

MYSQL在左联接上显示Null员工

来自分类Dev

MYSQL在左联接上显示Null员工

来自分类Dev

mysql选择,计数,左联接和显示

来自分类Dev

Django在多个外部字段上联接(左联接)

来自分类Dev

输入字段为空时显示错误

来自分类Dev

无法显示回声日期为空的字段

来自分类Dev

UserCreationForm在字段为空时显示错误

来自分类Dev

为什么即使立即实例化我的字段也为空?

来自分类Dev

ReactJS-新项目,即使该字段为空

来自分类Dev

即使必填字段为空,我的表单也会提交

来自分类Dev

即使存在匹配的值,左联接也会返回null

来自分类Dev

将多个右联接重写为左联接

来自分类Dev

选择左联接但未在联接表中显示数据

来自分类Dev

左联接ON非空列不能选择非空列

来自分类Dev

即使MS Access中的联接结果为空,如何返回查询结果?

Related 相关文章

热门标签

归档