我有以下表格:
table_1
id | table_2_id | table_3_id | table_1_specific_columns
1 | null | 1 |
2 | 1 | null |
...
以及:
table_2
id | table_2_specific_columns| date
1 | blabla | 01-01-1990
2 | bababa | 02-02-1992
...
以及:
table_3
id | table_3_specific_columns| date
1 | blabla | 01-01-1991
2 | bababa | 02-02-1989
...
数据库是PostgreSQL
如何订购table_1按日期列table_2和table_3联接表在Laravel?
这可以用雄辩来完成吗?
编辑:如果可以使用Elounce完成,则预期结果是表1模型的集合,表2和表3的关系由表2和表3中的日期列排序
编辑2:
表1的asc排序的预期结果。添加日期列是为了快速参考,不是必需的。
id | table_2_id | table_3_id | date
1 | null | 2 | 02-02-1989
2 | 1 | null | 01-01-1990
1 | null | 1 | 01-01-1991
2 | 2 | null | 02-02-1992
从你分享的内容来看,你要么table_2要么table_3关系(如果有的话),所以你可以这样做:
DB::table('table_1')
->leftJoin('table_2', 'table_1.table_2_id','table_2.id')
->leftJoin('table_3', 'table_1.table_3_id','table_3.id')
->select('table_1.*')
->orderByRaw('COALESCE(table_2.date, table_3.date)');
注:如果一行涉及表2和表3,顺序仅由table_2给出
这里的缺点是,您还将包括任何与任何内容无关的table_1
行。您可以通过添加来省略这些
如果您有一个模型,您可以修改以上内容以使用,例如
Table1::leftJoin
而不是使用DB::table
在这种情况下select('table_1.*')
变得更加重要,不能在模型对象中添加错误的值
因此,我有两个表,它显示的值类似于Facebook look-a feed。它们都有一个列,名为,但我希望它们按日期desc排序。 我认为加入是正确的方式(?),但不太确定。有人能帮帮我吗? 目前我在两个不同的查询中有它们: 而且 我该怎么做呢?
问题内容: 我不是数据库专家,所以我需要一些有关正在处理的查询的帮助。在我的照片社区项目中,我不仅要显示标签名称和计数器(标签中的图像数量),而且还想显示标签中最受欢迎的图像(最因果),以丰富标签的可视化效果。 表设置如下: 图像表包含基本图像元数据,重要的是因果字段 Imagefile表每个图像包含多个条目,每种格式一个 标签表保存标签定义 Tag_map表将标签映射到图像 在我通常的试验和错误
我有下面的列表,我试着按日期时间重新排序。 我想以最远到期日期最先显示的方式重新排序列表: 我尝试过的(更新)- 在排序函数上,我收到了这个错误(通过上述修复解决):
我有一个对象列表,其中的数据如下: XYZ 11-10-2012 ABC 11-10-2012 PQR 20-04-2012 IJK 24-08-2012 MnO 22-05-2014
问题内容: 如何排序日期对象列表?例如,我有未排序的日期对象列表。如何从此列表中获取最大值/最小值? 问题答案: 使用列表排序方法: 有关如何排序的更多信息。
我有这样一个情况: 我必须对进行排序,该列表还包含的ID,排序必须为: null