Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MYSQL termasuk nilai untuk tanggal dengan jumlah item nol

DIEDIT UNTUK MEMPERBAIKI JAWABAN:

http://sqlfiddle.com/#!2/ae665/4

SELECT date_format(datefield,'%Y-%m-%d') AS DATE, IFNULL(counts, 0), item_id FROM 
    dates a
LEFT JOIN 
    (SELECT COUNT(*) as counts, purchase_date,user_id,item_id 
     FROM items_purchased 
     WHERE item_id=1
     GROUP BY date(purchase_date),item_id )r 
ON date(a.datefield) = date(r.purchase_date) ;

Query di atas didasarkan pada asumsi:

PERBARUI oleh @timpeterson (OP)Terima kasih banyak kepada @Sel. Inilah sqlfiddles yang mendemonstrasikan kedua kueri yang saya minati:

  1. Pembelian/hari untuk semua item yang dimiliki oleh satu pengguna (mis., user_id=11 ):http://sqlfiddle.com/#!2/76c00/3
  2. Pembelian/hari untuk item_id=1 yang dimiliki oleh user_id=11 :http://sqlfiddle.com/#!2/76c00/1

inilah kode SQL untuk yang ke-2 jika tautannya rusak:

SELECT date_format(datefield,'%Y-%m-%d') AS DATE, 
IFNULL(countItem, 0), item_id
FROM dates a
LEFT JOIN 
(SELECT countItem, purchase_date,i.user_id,p.item_id FROM (
   SELECT count(*) as countItem, purchase_date,user_id,item_id 
   FROM items_purchased 
   GROUP BY date(purchase_date),item_id
   ) p 
 inner join items i
 on i.item_id=p.item_id
 WHERE p.item_id='1' and i.user_id='11' //just get rid of "p.item_id='1'" to produce the 1st query result
)r 
ON date(a.datefield) = date(r.purchase_date);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Membuat Stempel Waktu PHP/MySQL terlihat lebih menarik

  2. Laravel 4 Penghapusan Lunak Cascading

  3. Bagaimana cara menangkap kode dan Pesan Kesalahan MySQL menggunakan Laravel 5.2?

  4. Bagaimana cara mengakses MySQL dari komputer jarak jauh (bukan localhost)?

  5. Bidang peningkatan database mysql menggunakan sintaks record aktif codeigniter