我正在尝试将我的应用程序从MS SQL Server移动到MySQL,并且我在子查询中面临MySQL的LIMIT
子句的问题。
SQL Server代码:
select F.call_Id, F.cell_Phone_Number, F.cal_DATE
From TD_Call_Log AS F
Where F.call_Id IN ( Select Top 5 S.call_Id
From TD_Call_Log AS S
where S.cell_Phone_Number = F.cell_Phone_Number)
Order by cell_Phone_Number
我尝试过的MySQL代码:
select F.call_Id, F.cell_Phone_Number, F.cal_DATE
From TD_Call_Log F
Where F.call_Id IN (Select S.call_Id
From TD_Call_Log S
where S.cell_Phone_Number = F.cell_Phone_Number Limit 5)
Order by cell_Phone_Number
我也尝试过:
select F.call_Id, F.cell_Phone_Number, F.cal_DATE
From TD_Call_Log F INNER JOIN (Select S.call_Id
From TD_Call_Log S
where S.cell_Phone_Number = F.cell_Phone_Number Limit 5) as t
ON F.call_Id = t.call_Id
Order by cell_Phone_Number
答案 0 :(得分:0)
尝试使用内部联接替换In子句中的子查询。
select F.call_Id, F.cell_Phone_Number, F.cal_DATE
From TD_Call_Log AS F
INNER JOIN
(
Select S.call_Id, S.cell_Phone_Number
From TD_Call_Log S
Limit 5
)
sub
where sub.cell_Phone_Number = F.cell_Phone_Number and F.call_Id = sub.call_Id
Order by cell_Phone_Number