首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何根据where子句从两个表中进行选择

如何根据where子句从两个表中进行选择
EN

Stack Overflow用户
提问于 2014-10-25 22:11:55
回答 3查看 284关注 0票数 1

我试图从两个表中进行选择,并在它们具有相同id的情况下连接它们,但我的查询似乎是错误的,它搜索了太长时间,导致workbench崩溃。

代码语言:javascript
运行
复制
   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_onemovies_two中选择行,其中movies_one具有votes = -1,而movies_two具有movies > 0

EN

回答 3

Stack Overflow用户

发布于 2014-10-25 22:15:46

为此,您不需要left join。您也不需要cross join (这就是逗号在from子句中的作用)。

我认为你想要这样的东西:

代码语言:javascript
运行
复制
SELECT *
FROM movies_one.movie m1 JOIN
     movies_two.movie m2
     ON m1.id = m2.id AND
        m1.votes = -1 AND 
        m2.numofvotes > 0;

我还建议您使用表别名,它是表名的缩写。你对你想要的东西的文本描述和你的查询是完全不同的。

票数 2
EN

Stack Overflow用户

发布于 2014-10-25 22:17:26

代码语言:javascript
运行
复制
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 -左表中的数据时,您可以使用左连接。但在这里,您需要这两个表的数据。

票数 1
EN

Stack Overflow用户

发布于 2014-10-25 22:17:04

试试这个:

代码语言:javascript
运行
复制
SELECT * 
  FROM movies_one.movie 
 WHERE numofvotes = -1
 UNION
SELECT * 
  FROM movies_two.movie 
 WHERE votes > 0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26563319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档