Join 内部联接限制为一行
我有两张桌子t1和t2 t1具有字段Join 内部联接限制为一行,join,Join,我有两张桌子t1和t2 t1具有字段位置 t2有字段start和stop 我的内部连接如下: select t1.* from t1 inner join t2 on t1.position >= t2.start AND t1.Pos <= t2.stop 选择t1.* 从t1内部连接t1上的t2.position>=t2.start和t1.Pos从t1中选择t1.* 内连接t2 在t1.position>=t2.start上 和t1.Pos您可以对结果集执行disti
位置
t2有字段start
和stop
我的内部连接如下:
select t1.*
from t1 inner join t2 on t1.position >= t2.start AND t1.Pos <= t2.stop
选择t1.*
从t1内部连接t1上的t2.position>=t2.start和t1.Pos从t1中选择t1.*
内连接t2
在t1.position>=t2.start上
和t1.Pos您可以对结果集执行distinct或首先使用内部查询。如果您处理的是小数据集,我将使用distinct,否则使用内部查询
独特的:
select distinct t1.* from t1 inner join t2 on t1.position >= t2.start AND t1.Pos <= t2.stop
从t1.position>=t2.start和t1.Pos=t2.start上的t1内部连接t2中选择不同的t1.*
位置当你说你想要的只是第一行时,你总是想要一个特定的行吗?比如,在你的例子中,{start:1,end:15}?还是随便哪个先来?这很重要的原因是数据库可以以任何顺序返回示例中的记录。哪个DBMS?MySQL、SQL Server等?但是当使用内部查询时,我看不到t2中的任何字段。我怎样才能做到这一点?
select distinct t1.* from t1 inner join t2 on t1.position >= t2.start AND t1.Pos <= t2.stop
select t1.*
from t1
inner join
(
select t1.position
from t1
inner join t2 on t1.position >= t2.start
AND t1.position <= t2.stop
) t2 on t2.position = t1.position