我有以下数据库结构。
applets
--id (incr)
applet_stats
--id (incr)
--applet_id (relates to applet.id)
--date ("Y-m-d" format)
示例数据:
applets
1
2
3
applet_stats
1 1 2015.01.15
2 1 2015.01.15
3 1 2015.01.15
4 1 2015.01.15
5 2 2015.01.14
在上面的例子中,我们有3个小程序。 Applet 1在2015.01.15上有4x统计数据,在2015.01.14(昨天)上有Applet 2 1x统计数据
如何查询数据库,以便获得以下输出:
// Show me the applets which doesn't have any statistics on "2015.01.15".
[2,3]
我自己尝试使用leftJoin,但我忽略了一些非常简单的事情,所以每次都会得到错误的结果。
聚苯乙烯。在Eloquent声明中会更好。
答案 0 :(得分:2)
雄辩的方式,假设stats
是hasMany
关系:
$date = '2015-01-15';
Applet::whereDoesntHave('stats', function ($q) use ($date) {
$q->where('date', $date);
})->get();
答案 1 :(得分:1)
SELECT id
from applets
where id not in(select distinct applet_id from applet_stats where date ='2015.01.15')
这可能有助于你