mysql 根据数据所在的表从表中选择
Posted
技术标签:
【中文标题】mysql 根据数据所在的表从表中选择【英文标题】:mysql select from a table depending on in which table the data is in 【发布时间】:2010-03-31 15:40:44 【问题描述】:我有 3 张桌子,里面放着一家餐厅的产品。驻留在酒吧、食品和配料中的产品。
我使用 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】:我认为你做不到。
你能改变数据库模式吗?更好的选择是将酒吧、食物和配料放在单个表(例如产品)中,字段类型为“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 根据数据所在的表从表中选择的主要内容,如果未能解决你的问题,请参考以下文章