我试图从两个表中进行选择,并在它们具有相同id的情况下连接它们,但我的查询似乎是错误的,它搜索了太长时间,导致workbench崩溃。
SELECT s.id,
s.title,
s.votes,
t.*
FROM movies_two.movie s,
movies_one.movie t
LEFT JOIN movies_two.movie
ON movies_one.id = s.id -- not sure which join to use
WHERE s.votes = -1 AND
t.numofvotes > 0;我有两个包含相似数据的数据库。我尝试从具有相同id的movies_one和movies_two中选择行,其中movies_one具有votes = -1,而movies_two具有movies > 0
发布于 2014-10-25 22:15:46
为此,您不需要left join。您也不需要cross join (这就是逗号在from子句中的作用)。
我认为你想要这样的东西:
SELECT *
FROM movies_one.movie m1 JOIN
movies_two.movie m2
ON m1.id = m2.id AND
m1.votes = -1 AND
m2.numofvotes > 0;我还建议您使用表别名,它是表名的缩写。你对你想要的东西的文本描述和你的查询是完全不同的。
发布于 2014-10-25 22:17:26
SELECT s.id ,s.title, s.votes, t.*
FROM movies_two.movie s
JOIN movies_one.movie t
ON t.id = s.id
WHERE s.votes =-1
AND t.numofvotes >0;会很好的。当您只需要movies_two.movie -左表中的数据时,您可以使用左连接。但在这里,您需要这两个表的数据。
发布于 2014-10-25 22:17:04
试试这个:
SELECT *
FROM movies_one.movie
WHERE numofvotes = -1
UNION
SELECT *
FROM movies_two.movie
WHERE votes > 0https://stackoverflow.com/questions/26563319
复制相似问题