0
考虑下面的表格结构:帮助MySQL查询
users (user_id, ...)
images (image_id, user_id, ...)
tag_links (tag_id, image_id)
tags_names (tag_id, tag_name)
比方说,任何给定的user_id
已在images
表中的多个图像,并且图像具有存储在tag_links
多个标签。
我怎样才能加入这些表格,以获得所有图像上任何给定的user_id
所使用的所有tag_name?这些查询(连接多个表)是否缓慢并且不被推荐,或者这样做是否很常见?
谢谢。
+1。如果查询不需要用户表中的任何内容(例如用户名等),那么您可以跳过对表用户的加入。如果您想删除重复的标签,您可能还需要DISTINCT标签名称。 – StuartLC
thx @nonnb,错过了他不需要用户表。 – Jacob
@cularis真的很感谢,但正如你所说,我的设计只有在标签可以有多个名称时才有意义,否则我应该在tag_links中添加一列。你的意思是,tag_names不是必需的,我应该有三列的tag_links表:tag_id,tag_name和image_id。但我的想法是,由于标签(例如“java”)可用于不同的图像。因此,如果我只有一张桌子,我需要为每张图片的相同标签添加新行。还是你的意思是别的? – Roman