SQLite LEFT JOIN用法无法正常工作

时间:2016-05-08 21:10:09

标签: sqlite join

我有3个表格。客户,产品和统计。当用户选择用户和产品时,我将Stats->计数增加1。 统计表具有id,cid,pid和count值。 我的目的是按计数排序产品,它们应该是字母的。这是我的sql请求;

SELECT * FROM product AS p
         LEFT JOIN stat AS s
         ON p._id = s.stats_product_id
         WHERE s.stats_customer_id = 'customerId'
         ORDER BY s.stats_count desc , p.product_name COLLATE NOCASE;

问题是;因为我在创建一些订单后创建了统计数据值,所以在开始时我无法看到所有产品。因为我从未使用过的某些产品不在我的统计表中。我知道LEFT JOIN应该给我所有的产品价值,但它没有...请帮助我。谢谢你的建议。

Ex:我有a,b,c,d,e,f产品。让我们认为a,b买3次(他们的数量是3),e,f买了2次(他们的数量是2)和c,d从未买过(他们不在统计表中因为他们从未买过任何人,这就是问题所在!)。输出顺序应为: 一个 b Ë F C d 处理:答案#1的解决方案。

1 个答案:

答案 0 :(得分:0)

好的,我得到了答案。查询应该是这样的;

"SELECT * FROM " +
                        "(product LEFT JOIN stat " +
                        "ON product._id = stat.stats_product_id " +
                        "AND stat.stats_customer_id = '" + customerId + "' ) " +
                        " ORDER BY " +
                        "stat.stats_count desc , product.product_name COLLATE UNICODE";

我希望这对任何人都有帮助。

相关问题