簡體   English   中英

mysql加入兩個表vs在條件下使用

[英]mysql joining two tables vs using in condition

mysql-我有兩個下表如下

表格1

city code, city name
1, chicago
2, miami
3, NY

表2

branch,branch name, city code, day, amt
50,a,1,jan, $10
32,b,2,feb, $30

我想查找分支機構和分支機構名稱,其中紐約的brances在1月份的總amt> $ 50

我有如下代碼

select branch, branch name, sum(amt) from table2
where city code = (select city code from table1 where  city name = 'NY')
and day="jan"
group by branch, branch name
having sum(amt)>50
  1. 上面的代碼正確嗎?
  2. 如果我想要NYchicago城市,那么我可以將where子句修改為

where city code in (select city code from table1 where city name in ('NY','chicago')

  1. 通過連接兩個表(單個查詢)如何獲得相同的結果?
  2. 什么是獲得此輸出的最有效方法

您的查詢2是正確的。

聯接的等效項是:

select table2.branch, table2.branch name, sum(table2.amt) 
from table2
join table1 on table1.citycode = table2.citycode
where table2.day="jan"
and table1.cityname in ('NY', 'Chicago')
group by branch, branch name
having sum(amt)>50

以我的經驗,MySQL的聯接性能要比where in (subquery)更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM