2016-05-23 6 views
3

Hier ist eine einfache AbfrageMysql multiplizieren Anzahl von gleichen Platten

$fetch_comb = mysql_query("SELECT code_id , atb_name_id FROM products_attributes pa WHERE pa.products_id = $products_id "); 

Ich habe eine Ausgabe wie diese

----------------------- 
| code_id |atb_name_id| 
----------------------- 
| 1  | 31  | 
| 2  | 31  | 
| 3  | 31  | 
| 4  | 31  | 
| 5  | 34  | 
| 6  | 34  | 
| 7  | 37  | 
| 8  | 37  | 
| 9  | 37  | 

column `atb_name_id` has 
"31" = 4 records, 
"34" = 2 records and 
"37" = 3 records 

ich diese Datensätze in der Abfrage dh 4 * 2 * 3 multiplizieren möchten = 24

+1

Das ist großartig. Was ist deine Frage? Denken Sie daran, dass Sie sich Mühe geben müssen, andere sind nicht hier, um ** Ihren ** Code zu schreiben. –

Antwort

9

Es gibt keine PRODUCT-Funktion in SQL, aber es gibt eine workaround. Sie können dies versuchen:

SELECT CEILING(EXP(SUM(LOG(cnt)))) 
FROM (
    SELECT atb_name_id, COUNT(*) AS cnt 
    FROM products_attributes pa 
    WHERE pa.products_id = $products_id 
    GROUP BY atb_name_id 
) t 

ONLINE DEMO

+2

Die Arbeit aorund ist brilliant! +1 –

+0

Dank @Felix Pamittan –

+0

das ist Genie! – Hytool

Verwandte Themen