我正在尝试在我的视图中创建一个表,并在某些条件下填充它。
我有两个表,两个表里面都有两列,一列叫event_url
,另一列是gmiurl
。内部带有gmiurl的表称为GMITable
,另一个称为newevent
基本上我想在GMITable
内显示所有内容,除非列event_url
内部的网址与gmiurls
内的GMITable
内的任何网址匹配
我目前除此之外没有任何代码
@GMI = GMITable.all
答案 0 :(得分:0)
您可以使用表A到表B中的LEFT OUTER JOIN轻松实现结果,如this visual explanation中所述。
具体来说,你想要的是:
要仅在表A中生成记录集,而不在表B中生成记录集,我们执行相同的左外连接,然后通过where子句从右侧排除我们不想要的记录。
在你的问题中,不清楚如何调用表,以及它们如何相互关联。但是,要实现结果,只需使用ActiveRecord join
方法
TableA.joins('LEFT OUTER JOIN TableB on TableA.field = TableB.field')
并仅选择其中的项目(TableB.id IS NULL
。)
您必须根据自己的需要调整示例。