Mysql查询两个表

时间:2017-03-25 19:49:04

标签: mysql

我有2个表routecombo

我尝试了很多查询(联合和联接)但没有成功。

我想获得Route表中combo表中rt_num表中route表中PDate表中存在Route条目的结果 id | rt_num | name | ----|--------------|------| 1 | 123 east | Ron | 2 | 2North | Ted | 4 | 909 | Ted | 。我完全迷失了。

Combo

 id | Route    | PDate               |
----|----------|---------------------|
  1 | 123 east | 2017-02-15 08:55:04 |
  2 | 2North   | 2017-02-16 10:55:04 |

Results

  rt_num  |    Pdate    |
----------|-------------|
123 east  | 2017-02-16  |
123 east  | 2017-02-17  |
2North    | 2017-02-15  |
2Notrh    | 2017-02-17  |
909       | 2017-02-15  |
909       | 2017-02-16  |
909       | 2017-02-17  |

{{1}}表

{{1}}

更多信息:

我有这两个查询: 从路线r,combo中选择DISTINCT r.rt_num,DATE_FORMAT(PDate,'%Y-%m-%d');  从组合中选择DISTINCT Route,DATE_FORMAT(PDate,'%Y-%m-%d'); 每个返回所需的数据,我需要将它们并排显示,并将PD与PDate路由匹配,或者使用PDate或NULL我希望这是对我想要做的更好的解释。

2 个答案:

答案 0 :(得分:1)

您可以使用NOT IN QUERY

SELECT * FROM `route` WHERE route.rt_num NOT IN (SELECT `Route ` FROM `combo`);

此查询返回值在组合表中不可用。

答案 1 :(得分:0)

以下查询通过Peter Brawley的帮助完成了我需要它做的事情

select a.rt_num, a.tdate, b.Route
from ( 
  select distinct r.rt_num, date_format(t.PDdate,'%y-%m-%d') as tdate
  from route r 
  join combo t on r.rt_num IS NOT NULL    
  ) as a
left join (
  select distinct Route, date_format(PDdate,'%y-%m-%d') as pudate
  from combo
) as b on b.Route = a.rt_num and b.pudate = a.tdate ;