1
に私はこのMySQLのクエリが部分的に作業があります。COUNT()、GROUP BYとNULL値は、MySQLクエリ
SELECT p.product_id, p.product_name, p.sales,
p.length, p.hits, COUNT(w.product_id) AS favorites
FROM `products` AS p, `products_mf_xref` AS m,
`wishlist_items` AS w
WHERE m.manufacturer_id = '1'
AND p.product_id = m.product_id
AND m.product_id = w.product_id
GROUP BY m.product_id ORDER BY p.product_id ASC
私はテーブルからいくつかのフィールドを回収した回数にこれらの製品を取得しようとしています別のテーブルで参照されています(この最後のテーブルは "whishlist"と呼ばれていました)。クエリは正常に動作していますが、ウィッシュリストテーブルで少なくとも1回参照されている製品のみを取得します。
私はcount(*)が意味をなさない値を得ていないことを読んでいますが、希望リストテーブルで参照されていない製品も必要です。つまり、COUNT(w.product_id)が等しい商品"0"。
null値も含めて、すべての製品を復元する方法はありますか? 質問を変更するにはどうすればよいですか?それは私を怒らせるだろう!
ありがとうございます!
のための使用しますMySqlの私のメモを見て正しい答えを探すことを考えたが、私は前に私に答えてくれた。私はあなたが正しいと言ってくれてうれしく、クエリは期待した結果を生む。ありがとうございました!あなたは亀裂です!しかし、私は次回に尋ねる前にメモを確認します。あなたのアドバイスをもう一度おねがいします! – Alberto
よろしくお願いします。 :-) PostgreSQLをいつか使ってみてください。オープンソースのOracleのようなものです。例えば、CTEとウィンドウ関数を使って実現できるものを見てみましょう:http://stackoverflow.com/a/10395130 –
これは、クエリを詳しく見てから、LEFT JOINについてのマスタークラスです。私は、MySQLに関する私のメモを見直すよりも、クエリを研究することによって多くのことを学びました。もう一度ありがとう! – Alberto