2010-03-31 93 views
1

我有3張桌子,裏面放着一家餐館的產品。留在酒吧,食物和配料中的產品。mysql根據表中的數據是從哪個表中選擇

我使用php和mysql。我有另一張表格,裏面保存了迄今已完成的訂單信息。有2個領域,最重要的領域,有關產品的id和類型(從酒吧,廚房或配料)的信息。 我正在考慮寫如下的SQL查詢來使用表中的酒吧產品,廚房或配料,但它不工作。基本上,加入的第二張表必須是「bar」,「produse」或「stoc」。

SELECT K.nume, 
     COUNT(K.cantitate) as cantitate, 
     SUM(K.pret) as pret, 
     P.nume as NumeProduse 
    FROM `clienti_fideli` as K 
    JOIN if(K.tip,bar,produse) AS P ON K.produs = P.id_prod 
WHERE K.masa=18 and K.nume LIKE 'livrari-la-domiciliu' 
GROUP BY NumeProduse 

回答

1

我不認爲你可以這樣做。

你能改變數據庫模式嗎?一個更好的選擇是將有杆,食品和在單個表中與字段類型成分(例如產品),這將是「酒吧」,「produse」或「STOC」

SELECT K.nume, 
     COUNT(K.cantitate) as cantitate, 
     SUM(K.pret) as pret, 
     P.nume as NumeProduse 
    FROM `clienti_fideli` as K 
    JOIN product AS P ON K.produs = P.id_prod AND P.tip = <product_type> 
WHERE K.masa=18 and K.nume LIKE 'livrari-la-domiciliu' 
GROUP BY NumeProduse 
+0

解決使用UNION問題。不過謝謝你的建議。該架構不能被修改,這將意味着改變整個軟件,並且無法完成。 – user253530 2010-03-31 16:45:43

相關問題