gpt4 book ai didi

mysql - laravel 中具有 2 个表选择的等效查询生成器表达式是什么

转载 作者:行者123 更新时间:2023-11-29 15:18:05 24 4
gpt4 key购买 nike

我有以下 SQL 查询,

select products.*
from orders,
json_table(
orders.order_summary,
"$.products[*]"
columns(
quantity int path "$.quantity",
variant_id int path "$.variant_id"
)
) products

由于这涉及 2 个表名,尽管它是同一个表中 JSON 列的一部分的别名,所以我无法找出等效的查询生成器语法。

DB::table('orders,  json_table(
orders.order_summary,
"$.products[*]"
columns(
quantity int path "$.quantity",
variant_id int path "$.variant_id"
)
) products')->select('variant_id','quantity')

当我尝试执行上述语句时,eloquent 在“$.quantity”周围应用引号

最佳答案

由于您使用的是非常具体的 MySQL json 函数,Eloquent 没有适用于所有这些函数的方法,因此在这种情况下,最好的方法可能是:

$data = Order::selectRaw("json_table(orders.order_summary, 
'$.products[*]' columns( quantity int path '$.quantity',
variant_id int path '$.variant_id'")->get();
  • 调用Order模型
  • 使用 selectRaw 处理复杂或纯 SQL 查询
  • 对主查询使用双引号,对变量使用单引号
  • 最后使用 get 从查询中获取所有数据

关于mysql - laravel 中具有 2 个表选择的等效查询生成器表达式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59543251/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com