Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将SQL查询转换为Laravel_Php_Mysql_Sql_Laravel - Fatal编程技术网

Php 将SQL查询转换为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

我对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 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,我认为没有任何尝试,这个问题已经脱离主题)。