困惑已久的有关问题,关于right join 和where的冲突

困惑已久的问题,关于rightjoin 和where的冲突例如select*fromt1innerjoint2on....innerjoint3on....rightj

困惑已久的问题,关于right join 和where的冲突
例如
select   *   from   t1
inner   join   t2   on   ....
inner   join   t3   on   ....
right   join   t4   on   ....
where   t1.name= '... '   and   t1.date= '... '
就是说,我的预期是保留表t4所有记录,但是where条件会过滤掉t4的记录,而where又是t1的条件筛选

我现在的一个办法是把t4放在from后面,使用left   join,但还有没有其他的办法呢?
谢谢!


[解决办法]
不是where的问题,是执行时的顺序就是这样的
[解决办法]
要么这样
select * from (select * from t1
inner join t2 on ....
inner join t3 on .... where t1.name= '... ' and t1.date= '... ') t
right join t4 on ....

[解决办法]
select * from
(
select * from t1
inner join t2 on ....
inner join t3 on ....
where t1.name= '... ' and t1.date= '... '
) as t
right join t4 on .... --注意这里....中对t1 t2 t3的引用都要改成t



[解决办法]

--用子查询
select * from
(select * from t1 where name= '... ' and date= '... ') A
inner join t2 on ....
inner join t3 on ....
right join t4 on ....


[解决办法]
1 2楼好快
[解决办法]
哼哼~~
[解决办法]
这样试试看,先把123连好,然后再right join T4,

select * from
(select * from t1 where t1.name= '... ' and t1.date= '... '
inner join t2 on ....
inner join t3 on ....) tt
right join t4 on ....



[解决办法]
晕,
都是霹雳闪电手啊~,迅雷不及掩耳盗铃~
[解决办法]
先把表1筛选玩再联接呗