我有以下sql查询
SELECT * FROM exams WHERE exams.id NOT IN (SELECT examId FROM testresults)
Run Code Online (Sandbox Code Playgroud)
如何将其转换为Laravel查询构建器格式?
谢谢.
好的,我在SO中搜索过它,但是我找不到它.有人能告诉我一个用于处理Microsoft SQL Server数据库的好的开源查询构建器工具吗?
如何进行查询以获取限制为3行的random()行?
我试过但得到错误:
myQueryBuilder.orderBy("random()", true);
Run Code Online (Sandbox Code Playgroud) 我目前正在使用SF2中的服务,该服务使用在本服务的构造函数中使用特定于存储库的QueryBuilder的类变量集来使用QueryBuilder查询数据库.这意味着我想尽可能地使用这个集合QueryBuilder来获得更整洁的代码和使用它的干净感觉.
我想避免在EntityManager上创建查询,而是仅使用此预定义的Querybuilder进行查询.
我正在寻找看起来像以下那样的东西:
$query = $this->fooRepository->createQueryBuilder('f')->select('*');
return $query->getResult(Query::HYDRATE_ARRAY);
Run Code Online (Sandbox Code Playgroud)
据我所知,以上将(如果它工作)返回数据库中的所有foo ..
如果您认为我是愚蠢的,应该对预定义的QueryBuilders做一些不同的事情,或者只使用:
createQuery()
Run Code Online (Sandbox Code Playgroud)
方法,因为它根本不是好的做法或不可能,不要犹豫告诉我.
谢谢!
我试图从users表中提取与users_groups数据透视表中某个组匹配的所有用户.我正在使用Cartalyst btw的Sentry 2.
这可以使所有用户连接名字和姓氏.
User::select(DB::raw('CONCAT(last_name, ", ", first_name) AS full_name'), 'id')
->where('activated', '=', '1')
->orderBy('last_name')
->lists('full_name', 'id');
Run Code Online (Sandbox Code Playgroud)
当我尝试将其更改为也过滤不属于某个组的用户时,我收到语法错误.
User::select(DB::raw('SELECT CONCAT(user.last_name, ", ", user.first_name) AS user.full_name'), 'user.id', 'users_groups.group_id', 'users_groups.user_id')
->join('users_groups', 'user.id', '=', 'users_groups.user_id')
->where('user.activated', '=', '1')
->where('users_groups.group_id', '=', $group)
->orderBy('user.last_name')
->lists('user.full_name', 'user.id');
Run Code Online (Sandbox Code Playgroud)
任何朝着正确方向的推动都将非常感激.
编辑:语法错误
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in
your SQL syntax; check the manual that corresponds to your MySQL server
version for the right syntax to use near 'SELECT CONCAT(user.last_name, ", ",
user.first_name) …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写以下代码:
foreach($relations as $relation){
$query->orWhereHas($relation, function ($query) use ($filter) {
$query->where('name', 'like', '%'.$filter.'%');
});
}
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何初始化$ query变量,我不想在foreach开始之前编写第一个orWhereHas.谁知道如何实现这一目标?谢谢!
有没有办法使用 Laravel 查询生成器获取表的主键名称?我可以做类似的事情吗
$key = DB::table($someTable)->getPrimaryKey();
Run Code Online (Sandbox Code Playgroud)
我查看了文档和 API,但找不到任何参考资料。
提前致谢。
阅读文档很清楚如何构建查询,但我找不到任何如何连接到数据库的教程 - 即指示 pypika 使用哪个数据库,哪些凭据等。如何使用 pypika 连接到数据库?
我有一张库存变动表,其中显示了产品的历史记录(接收、移动位置等)
\n\n我有两个计算的查询(通过总计):
\n\n这两个查询都返回相同模型的集合。它们的结果数量始终相同,并且 Product_id 也始终相同。唯一不同的部分是接收/实时数量,我想以某种方式将各个记录合并到一个新集合中。IE
\n\n查询 1 中的单个记录:
\n\n0 => StockMovement {#1602 \xe2\x96\xbc\n #original: array:2 [\xe2\x96\xbc\n "live_qty" => "8"\n "product_id" => "2606598e-4150-461a-9e91-10d67cce8daa"\n ]\n}\nRun Code Online (Sandbox Code Playgroud)\n\n查询 2 中的单个记录;
\n\n0 => StockMovement {#1602 \xe2\x96\xbc\n #original: array:2 [\xe2\x96\xbc\n "received_qty" => "15"\n "product_id" => "2606598e-4150-461a-9e91-10d67cce8daa"\n ]\n}\nRun Code Online (Sandbox Code Playgroud)\n\n我试图最终得到一个合并结果,如下所示:
\n\n0 => StockMovement {#1602 \xe2\x96\xbc\n #original: array:3 [\xe2\x96\xbc\n "received_qty" => "15"\n "live_qty" => "8"\n "product_id" => "2606598e-4150-461a-9e91-10d67cce8daa"\n ]\n}\nRun Code Online (Sandbox Code Playgroud)\n\n我想以一种不将 Product 对象转换为数组的方式来执行此操作,因为我需要嵌入其中的关系。
\n\n目前,我对此进行了如下破解: …
我在 Elasticsearch 中有以下保存的 json 数据:
{
"id":"1234",
"expirationDate":"17343234234",
"paths":"http:localhost:9090",
"work":"software dev",
"family":{
"baba":"jams",
"mother":"ela"
}
},
{
"id":"00021",
"expirationDate":"0123234",
"paths":"http:localhost:8080",
"work":"software engi",
"family":{
"baba":"stev",
"mother":"hela"
}
}
Run Code Online (Sandbox Code Playgroud)
我想在springdata Elasticsearch 中使用 QueryBuilder删除其到期日期小于今天的所有ID列表
java query-builder elasticsearch spring-boot spring-data-elasticsearch
query-builder ×10
laravel ×4
eloquent ×3
php ×3
mysql ×2
android ×1
database ×1
doctrine-orm ×1
java ×1
laravel-4 ×1
open-source ×1
ormlite ×1
pypika ×1
python ×1
spring-boot ×1
sql-server ×1
symfony ×1