SQL我的子查询永远正在加载

时间:2015-12-12 19:19:55

标签: mysql sql phpmyadmin subquery

好吧基本上我正在尝试使用mysql在phpmyadmin上使用子查询运行一个简单的查询,并且在运行它之后它不会停止加载。查询是:

SELECT t.tagValue FROM tags t WHERE t.tagID IN (SELECT ua.tagID FROM user_taggedArtists ua WHERE ua.userID = 2);

我已经自己运行了各个查询而没有将它们组合在一起,它们似乎做了我想要的,但是当我将它们混合到子查询形式时,phpmyadmin只是永远加载,就像我得到一个无限循环或其他东西。

标签表看起来像这样:

╔═══════╦═════════════╗
║tagID║tagValue║
╠═══════╬═════════════╣
║1║金属║
║2║替代║
║3║pop║
╚═══════╩═════════════╝

user_taggedArtists表如下所示:

╔════════╦══════════╦═══════╦═════╦═══════╦════ ═══╗
║userID║artistID║tagID║day║月║年║
╠════════╬══════════╬═══════╬═════╬═══════╬═══════ ╣
║2║52║1║1║4║2009║
║2║52║1║1║4║2009║
║2║52║1║1║4║2009║
╚════════╩══════════╩═══════╩═════╩═══════╩═══════ ╝
等。

不确定我在这里做错了什么,非常感谢任何帮助。

谢谢!

1 个答案:

答案 0 :(得分:1)

很难说' zatly,但" IN"通常很慢。尝试JOIN和WHERE。我假装我们可以加入tagID。您应该在连接列上有索引。如果不是你做的任何事都会表现不佳。

SELECT t.tagValue 
FROM tags t 
INNER JOIN user_taggedArtists ua ON
    t.tagID = ua.tagID
WHERE  ua.userID = 2