我想知道是否可以在laravel / sql中创建一个连接,只有在它们不为空时才替换它们。
我正在尝试创建一个“更改”表。如果对用户进行了更改,则会将其保存到更改表中。如果某人想要选择所有用户,他可以看到用户,如果他们存在于更改表中,他会看到结果中的更改。
实施例: 我有一个用户表与字段:名称和年龄。 一个人改变了年龄,并且更改表中有一个新行,名称字段为NULL,年龄为新年龄。
然后我选择users表并查看旧名称(因为它在更改表中为NULL)和新时代(也因为它在更改表中)
尝试使用连接,但这并不能解决问题:
$data = DB::table('changes')
->join('users', 'changes.user_id', '=', 'users.id')
->select('*')
->get();
答案 0 :(得分:0)
我认为内部联接应该可以解决问题,这是一个想法:
您查询更改表,按user_id分组,选择具有最新日期的那个,然后使用您的用户表进行内部联接...但我不认为您使用Eloquent执行此操作,RAW sql可能是你想要的东西......