sql - 将复杂的 Pivot SQL 查询转换为 Laravel Eloquent 关系
问题描述
我对您在下面看到的模式的提取有疑问:
如您所见,有一些通过数据透视表tasks
连接。数据透视表有一个枚举列,其中包含可能的值和。files
task_files
io
input
output
我想创建一个可急切加载的 Laravel Eloquent 关系,它返回任务的依赖任务。我想现有的关系类型不足以进行这种查询。至少我不知道如何,因此很高兴得到任何帮助。
我有一个有效的 SQL 原始查询,它基本上可以使用子查询。请注意,实际应用程序需要一些约束(例如软删除)。
SELECT
*
FROM
wecreateyour.tasks
WHERE
id IN (SELECT
inputs.task_id
FROM
wecreateyour.task_files AS inputs
WHERE
inputs.io = 'input'
AND inputs.file_id IN (SELECT
outputs.file_id
FROM
wecreateyour.task_files AS outputs
WHERE
outputs.io = 'output'
AND outputs.file_id = inputs.file_id
AND outputs.task_id IN (?)));
解决方案
推荐阅读
- python - Python Pandas - 根据其他列获取列的最小值并对其他列进行分组
- qt - Felgo模拟器中的元素尺寸与真机上的显示尺寸相差较大
- architecture - 两个组件的方向,财务报表生成器如何从数据库中获取数据?
- javascript - 移动视图图像上的滑块未显示
- fullcalendar - fullcalendar 更改月份视图的开始和结束
- gnuplot - 如何在 gnuplot 中使用图像命令绘制具有不同颜色圆圈的 100x100 数据集?
- php - 在laravel中使用表中的对象数组
- flutter - 如何创建在使用 AnimationController 创建的倒数计时器期间发出的警报?
- java - Java中的基本继承帮助
- c# - 在配置文件中填写部分