mysql从表中选择,具体取决于数据所在的表

时间:2010-03-31 15:40:44

标签: php sql mysql mysqli

我有3张桌子,为餐馆提供产品。存在于酒吧,食品和配料中的产品。

我使用php和mysql。我有另一个表,其中包含有关目前已完成的订单的信息。有两个字段,最重要的字段,包含有关产品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 个答案:

答案 0 :(得分:1)

我认为你不能那样做。

可以更改数据库架构吗?一个更好的选择是将酒吧,食物和配料放在一个表格(例如产品)中,其字段类型可以是“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 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