MySQL Veritabanı Sorgu Sorunu

4 Cevap php

Senin yardımına ihtiyacım var!.

Ben satılan malın kaydı var benim veritabanında bir tablo sorgulamak gerekir. Ben belirli bir ürünü tespit etmek ve aynı zamanda satılan miktarını hesaplamak sorgu istiyorum. Ürün, 300, ama gelecekte artacaktır.

Aşağıda benim DB Tablo bir örnek

4 Cevap

Senin sorunun ne olduğunu tam olarak emin değilim, ama masa tasarımı bir sorun gibi görünüyor. Vb sütunlar foo1, FOO2, foo3, herhangi bir zaman .. sizin tasarım değişikliği gerekebilir sizin için bir işaret olmalıdır.

Sana database normalization bakmak ve First Normal Form üzerine Wikipedia sayfası öneririz. Özellikle size repeating groups across columns ile ilgili bölümüne ve nasıl resolve it bakmak olabilir.

Sen ilişkisel tasarımı hakkında öğrenme birkaç saat harcamak gerekir. Sizin varlıkları (ürün, müşteri, sipariş) Modele gerekli yabancı anahtarları tablo oluşturmak ve katılmak ve mutlaka öğrenmek sorgularda katılır.

Lütfen tabloda 12 farklı 'bir miktar' alanlar olarak orada, ihtiyacınız olan 'nicelik' emin değilim. İşte aradığınız ne benzer bir şey olabilir:

SELECT COUNT(quantity1) AS TotalAmnt
FROM litorder
WHERE product1 = 'yourProduct'
GROUP BY product1

Siz gelecekte bu gibi sorguları kolaylaştırmak için, hem de normalize your database denemek isteyeceksiniz.

Tablo normalize olmadığından, ben sorgu düzgün olmayacağını düşünüyorum. Bunu zor yoldan yapmak varsa Ama sonra ben bu işe düşünüyorum

select product1,quantity1 from table name where product1 = 'product name you want to search' union select product2,quantity2 from table name where product2 = 'product name you want to search'

Tablodaki her bir sütun için üzerinde 15 kez olun. Ama daha ürün eklenir mesai gibi bu sorgu yavaş olacaktır. Yani iyi ki bu tablo normalize etmektir. Bu kesinlikle size gelecekte saat ton tasarruf edecek.