我希望能够在某个类别下找到项目的标签。以下是我的数据库设计示例:
images
+----------+-----+-------------+-----+
| image_id | ... | category_id | ... |
+----------+-----+-------------+-----+
| 1 | ... | 11 | ... |
+----------+-----+-------------+-----+
| 2 | ... | 12 | ... |
+----------+-----+-------------+-----+
| 3 | ... | 11 | ... |
+----------+-----+-------------+-----+
| 4 | ... | 11 | ... |
+----------+-----+-------------+-----+
images_tags
+----------+--------+
| image_id | tag_id |
+----------+--------+
| 1 | 53 |
+----------+--------+
| 3 | 54 |
+----------+--------+
| 2 | 55 |
+----------+--------+
| 1 | 56 |
+----------+--------+
| 4 | 57 |
+----------+--------+
标签和类别每个都有自己的表,将id与实际名称(文本)相关联。
所以我的问题是如何才能发现category_id
= 11的图片有tag_id
53 54 56 57。
换句话说,如何查找特定类别中的图像标签?
答案 0 :(得分:3)
也许一个内在的SELECT会做到这一点?类似的东西:
SELECT tag_id FROM images_tags WHERE image_id IN (SELECT image_id FROM images WHERE cateory_id = 11 )
答案 1 :(得分:0)
试试这个:
SELECT images.*, tags.* from images, tags where images.image_id = images_tags.image_id and images.category_id = X;
其中X是所需类别。