mysql 根据数据所在的表从表中选择

Posted

技术标签:

【中文标题】mysql 根据数据所在的表从表中选择【英文标题】:mysql select from a table depending on in which table the data is in 【发布时间】:2010-03-31 15:40:44 【问题描述】:

我有 3 张桌子,里面放着一家餐厅的产品。驻留在酒吧、食品和配料中的产品。

我使用 phpmysql。我有另一个表,其中包含有关到目前为止已下订单的信息。有 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】:

我认为你做不到。

你能改变数据库模式吗?更好的选择是将酒吧、食物和配料放在单个表(例如产品)中,字段类型为“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

【讨论】:

使用 UNION 解决了​​这个问题。不过谢谢你的建议。架构无法修改,这意味着要更改整个软件并且无法完成。

以上是关于mysql 根据数据所在的表从表中选择的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 根据数据透视表从表中获取标题

MYSQL 根据多行从表中选择

MySQL 外键约束

mysql外键

根据日期参数从表中选择周末或工作日数据

根据特定条件从表中获取已插入数据的插入查询