执行 SQL 查询然后加入

Perform SQL query and then join

假设我有两个 table:

由于 table 非常大,我想先按日期 table 过滤门票

SELECT id FROM ticket WHERE date >= 'some date'

然后我想与用户 table 进行左连接。有没有办法做到这一点。我尝试了以下方法,但它不起作用。

 select ticket.id, user.name from ticket where ticket.date >= '2015-05-18' left join user on ticket.userid=user.id;

抱歉,这是一个愚蠢的问题。我在 google 上搜索过,但大多数答案都涉及连接后的子查询,而不是我想要的,即先执行查询,然后对返回的项目进行连接

为了让事情更清楚一点,我面临的问题是我有很大的 tables 并且加入需要时间。我正在加入 3 tables,查询需要将近 3 秒。减少时间的最佳方法是什么。我想我应该先 select 一小部分然后加入,而不是加入然后执行 where 子句。

只需将所有内容按正确顺序排列即可:

select - 从 - 哪里 - 分组依据 - 有 - 排序

select ticket.id, user.name 
from ticket left join user on ticket.user_id=user.id
where ticket.date >= '2015-05-18'

或者把它放在 Derived Table:

select ticket.id, user.name 
from
 (
   select * from ticket
   where ticket.date >= '2015-05-18'
 ) as ticket 
left join user on ticket.user_id=user.id