如何查询与某个类别相关的项目?

时间:2012-02-01 23:26:46

标签: mysql sql

我今天有点不停地编程,这似乎很容易,但我的大脑此时并不存在。

我有一张记录表。每条记录属于一个或多个类别。类别和记录由具有record_id和category_id列的中间表连接。

我想要查询的是与当前记录属于同一类别的记录。我该怎么做呢?

谢谢!

1 个答案:

答案 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的实际值,或者在准备好的语句中使用它(取决于语言)。