我的问题是我需要随时从dest表中获取mel列上的重复条目。
我已经尝试了很多东西来翻译Laravel中的这个查询,但找不到方法:
select id
from dest d,
(select mel from dest where stt = 0 group by mel having count(mel) > 1) sr
where d.mel = sr.mel
我试图创建一个视图
create DEFINER = user view dest_doubles
作为来自dest d的select id,(从dest中选择mel,其中stt = 0 group by mel have count(mel)> 1)sr,其中d.mel = sr.mel
select id from dest_doubles
查询会一直持续,而
select id from dest d, (select mel from dest where stt = 0 group by
mel having count(mel) > 1) sr where d.mel = sr.mel
在3分钟内回复
我在Laravel命令中试过这个:
\DB::select(\DB::raw('dest.id'))
->from(\DB::raw('dest, (select mel from dest where stt = 0 group by mel having count(mel) > 1) as sr'))
->whereRaw('dest.mel = sr.mel')
->chunk(10000, function ($doubles) {
});
无法执行:
[PDOException]
SQLSTATE [42000]:语法错误或访问冲突:1064您有 SQL语法错误;查看与您的手册相对应的手册 MySQL服务器版本,在'dest.id'附近使用正确的语法 第1行
所以我不知道如何在Laravel
中包含一个包含子查询的查询感谢您的帮助
答案 0 :(得分:0)
我不是Laravel大师,但您可以在表和子查询之间将原始查询重写为INNER JOIN
。使用Laravel可能会更容易。
SELECT id
FROM dest d
INNER JOIN
(
SELECT mel
FROM dest
WHERE stt = 0
GROUP BY mel
HAVING COUNT(*) > 1
) AS sr
ON d.mel = sr.mel