我有下表:
ID|user_id|group_id|subject |book_id
1| 2 |3 |history |1
2| 4 |3 |history |1
3| 5 |3 |art |2
4| 2 |3 |art |2
5| 1 |4 |sport |5
我想列出组3(id)的所有行,这些行具有相同的subject_id和book_id的重复行。 subject和book_id是确定要重复的2行或更多行的原因。
我希望我的独特结果看起来像这样:
|subject |book_id|
|history |1 |
|art |2 |
使用查询构建器或eloquent
答案 0 :(得分:5)
获取所需结果的SQL查询可能看起来像
SELECT subject, book_id
FROM table1
WHERE group_id = 3
GROUP BY subject, book_id
HAVING COUNT(*) > 1
这是 SQLFiddle 演示
现在使用Laravel查询生成器
$duplicates = DB::table('table1')
->select('subject', 'book_id')
->where('group_id', 3)
->groupBy('subject', 'book_id')
->havingRaw('COUNT(*) > 1')
->get();