2010-03-31 88 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

相关问题