我今天有点不停地编程,这似乎很容易,但我的大脑此时并不存在。
我有一张记录表。每条记录属于一个或多个类别。类别和记录由具有record_id和category_id列的中间表连接。
我想要查询的是与当前记录属于同一类别的记录。我该怎么做呢?
谢谢!
答案 0 :(得分:1)
假设您的关联表名为'record_category'。并且您已经在列表中列出了“当前记录”的类别ID。
select r.* from records r join record_category rc on rc.record_id=r.record_id where rc.category_id in( ?category_ids)
如果您拥有的只是当前记录的ID。那么这将是一个更完整的查询:
select r.* from record r join record_category rc on rc.record_id=r.record_id where rc.category_id in(select rc.category_id from record_category rc where record_id=?) group by r.record_id
替换?使用id的实际值,或者在准备好的语句中使用它(取决于语言)。