select * from 订单表 a inner join 箱唛表 b on (a.目的国= b.目的国 and a.订单尾号=b.订单尾号) or (a.目的国= b.目的国 and a.运输方式=b.运输方式)
SELECT * FROM 订单表 a WHERE EXISTS ( SELECT 1 FROM 箱唛表 WHERE 目的国=a.目的国 AND (a.订单尾号=a.订单尾号 OR 运输方式=a.运输方式) )
优先级可以用ISNULL()来实现,但是具体看你的“没有”是什么意思
SELECT * FROM 订单表 a WHERE EXISTS ( SELECT 1 FROM 箱唛表 WHERE 目的国=a.目的国 AND (订单尾号=a.订单尾号 OR 运输方式=a.运输方式) )多了个a., SORRY
select * from 订单表 a inner join 箱唛表 b on (a.目的国= b.目的国 and a.订单尾号=b.订单尾号 and b.箱唛规则=【目的国+订单尾号】) or (a.目的国= b.目的国 and a.运输方式=b.运输方式 and b.箱唛规则=目的国+运输方式)
select top 1 * from ( select 1 ft,你要的业务字段 from a join b on 目的国+订单尾号 去和订单表连接 where ...union all select 2 ft,你要的业务字段 from a join b on 目的国+运输方式 去和订单表连接 ) a order by ft
from 订单表 a
inner join 箱唛表 b
on (a.目的国= b.目的国 and a.订单尾号=b.订单尾号) or
(a.目的国= b.目的国 and a.运输方式=b.运输方式)
*
FROM
订单表 a
WHERE
EXISTS ( SELECT
1
FROM
箱唛表
WHERE
目的国=a.目的国 AND (a.订单尾号=a.订单尾号 OR 运输方式=a.运输方式) )
*
FROM
订单表 a
WHERE
EXISTS ( SELECT
1
FROM
箱唛表
WHERE
目的国=a.目的国 AND (订单尾号=a.订单尾号 OR 运输方式=a.运输方式) )多了个a., SORRY
select 1 ft,你要的业务字段 from a
join b on 目的国+订单尾号 去和订单表连接
where ...union all select 2 ft,你要的业务字段 from a
join b on 目的国+运输方式 去和订单表连接
) a
order by ft