加入表在SQL中没有成功

时间:2018-06-04 05:55:27

标签: sql

我在sql中有三个表,我想加入它们。

其中一个表是餐馆的菜单(tab007-有4列主键,菜单名称,费用和价格),另一个是客户表(bestel),最后一个是订单(本周制作的帖子有四列,主键,第一张表的主键,第二张表的主键和订单数量。

我想显示哪个菜单是最喜欢的菜单,哪个菜单对餐馆老板有最大的好处。

我尝试了几个选择语句但没有成功。我很乐意从这里获得帮助。这是我的选择声明:

(SELECT T.MID, T.NAME         
FROM TAB007 AS T              
INNER JOIN POST AS T1         
ON T.MID=T1.MID)              
SELECT SUM(ANZ) FROM T1.POST  
GROUP BY MID;                 

4 个答案:

答案 0 :(得分:1)

你可以使用它:

HttpClient

答案 1 :(得分:0)

要查找收藏菜单,您可以使用:

select t.tname,p.tid,sum(p.orders) from post p, tab007 t 
where t.tid=p.tid 
group by p.tid 
order by sum desc;

要查找效益最高的菜单,请注意以下几点:

****由于我不了解您问题的费用和价格领域,我认为费用低于项目的报价,而且收益将是费用和价格之间的差额。因此,特定项目的所有订单的差异越大,收益就越高。 ****

根据我的上述陈述,我有以下代码:

select t.tname, sum((t.tprice-t.texpense)*p.orders) from post p, tab007 t 
where p.tid=t.tid 
group by p.tid 
order by sum desc;

答案 2 :(得分:0)

假设只需要两个表,您可以像这样计算受欢迎程度和利润

SELECT T.mid, T.name, SUM(p.anz) favorites, SUM((T.price - t.expense) * p.anz) benefit
FROM TAB007 T
JOIN post P on p.mid = t.mid
GROUP BY t.mid, t.name
ORDER BY favorites DESC

要在结果中包含完全没有订单的菜单,您可以使用left joincase ... is null

SELECT T.mid, T.name, 
CASE WHEN p.anz IS NULL 
  THEN 0
  ELSE SUM(p.anz) END AS favorites, 
CASE WHEN p.anz IS NULL 
  THEN 0
  ELSE SUM((T.price-t.expense)*p.anz) END AS benefit
FROM menu T
LEFT JOIN post P on p.mid = t.mid
GROUP BY t.mid, t.name
ORDER BY favorites DESC

答案 3 :(得分:0)

菜单表(TAB007)列 - (中间,名称,扩展,价格)
客户表(bestel)列 - (cid,name)
订单表(帖子)列 - (pid,mid,cid,number_of_order)

收藏菜单:我猜是总订单数量最高
最高利益菜单:在 total_number_of_order *(价格 - 费用)之后有更多好处。

  

使用LEFT JOIN显示所有菜单项,即使它们不是   排序。

收藏菜单

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';


ReactDOM.render(<App />, document.getElementById('root'));

最高福利菜单

select t.mid, t.name, sum(number_of_order) as total_order 
from TAB007 t LEFT JOIN post p ON p.mid = t.mid 
group by t.mid, t.name 
order by total_order desc;