MySQL выбрать из таблицы в зависимости от того, в какой таблице находятся данные - PullRequest
1 голос
/ 31 марта 2010

У меня есть 3 стола с продуктами для ресторана. Продукты, которые находятся в баре, продукты питания и ингредиенты.

Я использую php и mysql. У меня есть другая таблица, которая содержит информацию о заказах, которые были сделаны до сих пор. Есть 2 поля, наиболее важные из которых содержат информацию об идентификаторе продукта и типе (из бара, с кухни или из ингредиентов). Я думал написать 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 Ответ

1 голос
/ 31 марта 2010

Я не думаю, что вы можете сделать это.

Вы можете изменить схему базы данных? лучшим вариантом было бы иметь батончик, еду и ингредиенты в одной таблице (например, продукт) с типом поля, которое будет «батончиком», «продукцией» или «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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...