求MySQL实现根据提供的时间检测出产品表,上架后时间之内不动销的产品?
有三个表 第一个表是产品表(goods):
<code>字段:id,goods_id,.... </code>
第二个表是订单-商品表(order):
<code>字段:id,goods_id,order_id,.... </code>
第三个表是订单详情表(order_info):
<code>字段:id,order_id,pay_time,... </code>
产品表 和 订单-商品表 是一对多的关系
订单-商品表 和 订单详情表 是一对一的关系
订单-商品表没有订单完成的状态,但是可以根据 订单详情表 的pay_time(支付时间)判断是否完成订单
现在要实现的是根据提供的时间检测出产品表,上架后时间之内不动销的产品?
补充:现在已经完成goods表关联order表查询获得没有订单的产品ID了,但是需要关联第三个表,还需要加上时间筛选,感觉之前的办法很难实现。
回复内容:
有三个表 第一个表是产品表(goods):
<code>字段:id,goods_id,.... </code>
第二个表是订单-商品表(order):
<code>字段:id,goods_id,order_id,.... </code>
第三个表是订单详情表(order_info):
<code>字段:id,order_id,pay_time,... </code>
产品表 和 订单-商品表 是一对多的关系
订单-商品表 和 订单详情表 是一对一的关系
订单-商品表没有订单完成的状态,但是可以根据 订单详情表 的pay_time(支付时间)判断是否完成订单
现在要实现的是根据提供的时间检测出产品表,上架后时间之内不动销的产品?
补充:现在已经完成goods表关联order表查询获得没有订单的产品ID了,但是需要关联第三个表,还需要加上时间筛选,感觉之前的办法很难实现。
分析一下问题,个人窃以为难以实现的关键:
- 不动销的概念不清晰。不知道是题主描述的不够清晰,还是题主本来对需求理解的不够清晰。不动销是指某个商品根本就没有订单,还是指支付成功笔数在多少数量之内呢?
- 订单表设计的不合理。从题主的描述来看,这是一个很明显的交易系统,涉及商品、订单、支付3个环节,后续还可能还涉及到题主未提及的发货、结算、退款和对账等环节。订单作为交易系统的核心环节,题主给出的表结构很显然没法体现一个交易流程当前处在哪个环节,即缺少订单的状态。这就造成很难判断订单的统计标准。
- 由于第2点的问题导致关联的商品分析也比较困难。题主给出的根据支付时间判断订单完成与否,是存在一定问题:首先,交易系统的时间一般只是作为日志信息记录,一个订单是否完成或处在哪个阶段是不能也不应该由时间确定,而应该有一个确定明确的标志;其次,系统的时间往往受很多因素影响,它不是一个精确值,对于分布式系统,其精确度更差,这样在一定程度上对以时间为统计依据的结果必然会带来影响。
综上几点,个人觉得题主应该在订单表(order),增加状态列(status)信息,这样的话就很好统计了。例如status=1表示订单完成,则SQL如下:
<code>1. 交易订单少于指定笔数为不动销 select goods_id from ( select goods_id, count(1) as num from order where status = 1 group by goods_id) t where t.num </code>

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Perbezaan utama antara MySQL dan MariaDB adalah prestasi, fungsi dan lesen: 1. MySQL dibangunkan oleh Oracle, dan Mariadb adalah garpu. 2. MariaDB boleh melakukan lebih baik dalam persekitaran beban tinggi. 3.MariADB menyediakan lebih banyak enjin dan fungsi penyimpanan. 4.MYSQL mengamalkan lesen dua, dan MariaDB adalah sumber terbuka sepenuhnya. Infrastruktur yang sedia ada, keperluan prestasi, keperluan fungsional dan kos lesen perlu diambil kira apabila memilih.

MySQL dan phpmyadmin boleh diuruskan dengan berkesan melalui langkah -langkah berikut: 1. Buat dan hapus pangkalan data: hanya klik phpmyadmin untuk diselesaikan. 2. Mengurus Jadual: Anda boleh membuat jadual, mengubahsuai struktur, dan menambah indeks. 3. Operasi Data: Menyokong memasukkan, mengemas kini, memadam data dan melaksanakan pertanyaan SQL. 4. Data Import dan Eksport: Menyokong SQL, CSV, XML dan format lain. 5. Pengoptimuman dan Pemantauan: Gunakan arahan yang boleh dioptimumkan untuk mengoptimumkan jadual dan gunakan penganalisis pertanyaan dan alat pemantauan untuk menyelesaikan masalah prestasi.

AI boleh membantu mengoptimumkan penggunaan komposer. Kaedah khusus termasuk: 1. Pengoptimuman Pengurusan Ketergantungan: AI menganalisis kebergantungan, mengesyorkan kombinasi versi terbaik, dan mengurangkan konflik. 2. Generasi Kod Automatik: AI menjana fail komposer.json yang sesuai dengan amalan terbaik. 3. Meningkatkan Kualiti Kod: AI mengesan masalah yang berpotensi, memberikan cadangan pengoptimuman, dan meningkatkan kualiti kod. Kaedah ini dilaksanakan melalui pembelajaran mesin dan teknologi pemprosesan bahasa semulajadi untuk membantu pemaju meningkatkan kecekapan dan kualiti kod.

Perbezaan utama antara Laravel dan Yii adalah konsep reka bentuk, ciri -ciri fungsional dan senario penggunaan. 1. Laravel memberi tumpuan kepada kesederhanaan dan keseronokan pembangunan, dan menyediakan fungsi yang kaya seperti alat eloquentorm dan artisan, sesuai untuk pembangunan dan pemula yang pesat. 2.YII menekankan prestasi dan kecekapan, sesuai untuk aplikasi beban tinggi, dan menyediakan sistem Activerecord dan cache yang cekap, tetapi mempunyai lengkung pembelajaran yang curam.

Untuk selamat dan teliti menyahpasang MySQL dan membersihkan semua fail sisa, ikuti langkah -langkah berikut: 1. Hentikan perkhidmatan MySQL; 2. Nyahpasang pakej MySQL; 3. Fail konfigurasi bersih dan direktori data; 4. Sahkan bahawa pemotongan adalah menyeluruh.

session_start () iscrucialinphpformanaginguserSessions.1) itinitiatesanewsessionifnoneexists, 2) resumeSanexistingsession, dan3) setSasessionCookieforcontinuityAcrossrequests, enableingApplicationeUseUshenticationandPersonalConizedConizedContentContentContentContentContentContentContentContentContentContentContentC.

Di MySQL, tambah medan menggunakan alterTabletable_nameaddcolumnnew_columnvarchar (255) afterexisting_column, memadam medan menggunakan altertabletable_namedropcolumncolumn_to_drop. Apabila menambah medan, anda perlu menentukan lokasi untuk mengoptimumkan prestasi pertanyaan dan struktur data; Sebelum memadam medan, anda perlu mengesahkan bahawa operasi itu tidak dapat dipulihkan; Mengubah struktur jadual menggunakan DDL dalam talian, data sandaran, persekitaran ujian, dan tempoh masa beban rendah adalah pengoptimuman prestasi dan amalan terbaik.

HTML5 membawa lima penambahbaikan utama: 1. Tag semantik meningkatkan kejelasan kod dan kesan SEO; 2. Sokongan multimedia memudahkan penyembuhan video dan audio; 3. Peningkatan Borang Memudahkan Pengesahan; 4. Offline dan storan tempatan meningkatkan pengalaman pengguna; 5. Fungsi kanvas dan grafik meningkatkan visualisasi laman web.
