Php 将SQL查询转换为Laravel
我对Laravel还比较陌生,尝试过使用许多指南和类似的堆栈溢出线程,但没有任何运气 是否有人能帮我将此查询改写为Laravel:Php 将SQL查询转换为Laravel,php,mysql,sql,laravel,Php,Mysql,Sql,Laravel,我对Laravel还比较陌生,尝试过使用许多指南和类似的堆栈溢出线程,但没有任何运气 是否有人能帮我将此查询改写为Laravel: SELECT a.id, a.hits, a.url, a.sold, a.total, a.updated_at, GROUP_CONCAT(b.TransID) as SONumber, COUNT(SONumber) AS newHits FROM hits AS a INNER JOIN transact
SELECT a.id, a.hits, a.url, a.sold, a.total, a.updated_at,
GROUP_CONCAT(b.TransID) as SONumber,
COUNT(SONumber) AS newHits
FROM hits AS a
INNER JOIN transactions AS b
ON FIND_IN_SET(b.TransID, a.SONumber) > 0
WHERE b.TransDate >= '$fromdate' || b.TransDate >= '$todate'
GROUP BY a.id
这是完美的作品,但我不知道如何重写它在拉威尔
表没有规范化,我必须编写这样的查询,以便它正常工作,因为我无法更改给定的表。您应该能够做到这一点:
$query = "SELECT a.id, a.hits, a.url, a.sold, a.total, a.updated_at, GROUP_CONCAT(b.TransID) as SONumber, COUNT(SONumber) AS newHits FROM hits AS a INNER JOIN transactions AS b ON FIND_IN_SET(b.TransID, a.SONumber) > 0 WHERE b.TransDate >= " . $fromdate . " || b.TransDate >= " . "$todate" . "GROUP BY a.id";
$results = DB::select($query);
不确定是否有名为a
和b
的表,或者这些表是否只是占位符。否则,您可能必须插入正确的表名
因为Laravel是一个MVC框架,而不是一种查询语言,所以您不会真正将查询转换为Laravel。也就是说,Laravel确实允许您在需要时使用原始SQL执行查询。请阅读-总结是,这不是解决志愿者问题的理想方法,可能会对获得答案产生反作用。请不要将此添加到您的问题中。我认为OP意味着将其转换为雄辩的Laravel ORM(FWIW,我认为没有任何尝试,这个问题已经脱离主题)。