Questions tagged «join»

JOIN是关系代数中的一般运算,用于在关系数据库系统中对两个或多个关系进行组合运算。JOIN也是用于执行此操作的SQL语言的关键字。

4
为什么2012年Pandas在python中的合并速度比data.table在R中的合并速度快?
最近,我遇到了python 的pandas库,根据该基准,该库执行非常快的内存中合并。它甚至比R(我选择分析的语言)中的data.table包还要快。 为什么pandas要比这快得多data.table?是因为python相对于R具有固有的速度优势,还是我不了解一些折衷方案?有没有一种方法可以执行内部和外部联接data.table而无需使用merge(X, Y, all=FALSE)and merge(X, Y, all=TRUE)? 这是用于对各种软件包进行基准测试的R代码和Python代码。
160 python  r  join  data.table  pandas 

14
子查询与联接
我重构了我们从另一家公司继承来的应用程序的缓慢部分,以使用内部联接而不是子查询,例如: WHERE id IN (SELECT id FROM ...) 重构查询的运行速度提高了约100倍。(约50秒,约0.3秒),我期望有所改善,但是谁能解释为什么如此剧烈?where子句中使用的列均已建立索引。SQL是否在where子句中每行执行一次查询? 更新 -说明结果: 区别在于“(())中的id”查询的第二部分- 2 DEPENDENT SUBQUERY submission_tags ref st_tag_id st_tag_id 4 const 2966 Using where vs 1带有连接的索引行: SIMPLE s eq_ref PRIMARY PRIMARY 4 newsladder_production.st.submission_id 1 Using index

4
MySQL:联接类型的快速细分
我想快速细分MySQL联接的类型。我知道这些,其余的我不确定它们是什么意思。 逗号分隔(这到底是什么缩写?):SELECT * FROM a, b WHERE b.id = a.beeId AND ... 显示来自a的信息,即使b中没有匹配项: SELECT * FROM a LEFT OUTER JOIN b ON b.id = a.beeId WHERE ... 我看过其他联接,但是想知道是什么使它们与众不同,INNER/ 是什么OUTER,确实增加了LEFT更改。 我已经知道联接的工作方式,我只想知道是否还有其他类型的联接,或者它们只是获得相同结果的不同方式。
157 mysql  join 

4
Oracle“(+)”运算符
我正在检查一些旧的SQL语句,以记录它们并可能对其进行增强。 DBMS是Oracle 我不明白这样的声明: select ... from a,b where a.id=b.id(+) 我对(+)运算符感到困惑,并且无法在任何论坛上找到它((在引号内搜索+也不起作用)。 无论如何,我使用了SQLDeveloper的“解释计划”,并且得到了这样的输出HASH JOIN, RIGHT OUTER,等等。 如果(+)在查询末尾删除运算符,会有什么区别?在使用数据库之前,是否必须满足一些条件(例如具有一些索引等)(+)?如果您可以为我提供一个简单的理解,或者可以从中获得一些好的链接,这将对您有所帮助。 谢谢!
155 sql  oracle  join  outer-join 

4
如何使用ID联接多个SQL表?
我要加入4个不同的表。这些表的结构如下: TableA - aID | nameA | dID TableB - bID | nameB | cID | aID TableC - cID | nameC | date TableD - dID | nameD 从表A开始,我了解如何使用b连接表a和c,因为b具有这些表的主键。我也希望能够在TableA上加入表TableD。下面是我的SQL语句,该语句首先连接表A和B,然后将其连接到C: SELECT TableA.*, TableB.*, TableC.* FROM (TableB INNER JOIN TableA ON TableB.aID= TableA.aID) INNER JOIN TableC ON(TableB.cID= Tablec.cID) WHERE (DATE(TableC.date)=date(now())) 当我尝试添加另一个联接以包括D时,出现错误,提示“ …
141 mysql  sql  join 

9
我可以在JOIN条件下使用CASE语句吗?
下图是Microsoft SQL Server 2008 R2系统视图的一部分。从图像中我们可以看到sys.partitions和之间的关系sys.allocation_units取决于的值sys.allocation_units.type。因此,要将他们加入一起,我会写类似以下内容: SELECT * FROM sys.indexes i JOIN sys.partitions p ON i.index_id = p.index_id JOIN sys.allocation_units a ON CASE WHEN a.type IN (1, 3) THEN a.container_id = p.hobt_id WHEN a.type IN (2) THEN a.container_id = p.partition_id END 但是上面的代码给出了语法错误。我想那是因为CASE声明。有人可以帮忙解释一下吗? 添加错误消息: 消息102,级别15,状态1,第6行'='附近的语法不正确。
140 sql  sql-server  join  case 

5
通过此查询实现分页(跳过/获取)功能
我一直在尝试了解一些有关如何在SQL中实现自定义分页的知识,例如阅读诸如此类的文章。 我有以下查询,它运行良好。但是我想用这个实现分页。 SELECT TOP x PostId FROM ( SELECT PostId, MAX (Datemade) as LastDate from dbForumEntry group by PostId ) SubQueryAlias order by LastDate desc 我要什么 我有论坛帖子以及相关条目。我想获取包含最新添加条目的帖子,因此我可以选择最近辩论过的帖子。 现在,我希望能够获得“前10到20个最近活跃的帖子”,而不是“前10个”。 我尝试了什么 我试图将ROW函数实现为本文中的那个,但确实没有运气。 有什么想法如何实施吗?

6
左联接仅第一行
我读了许多关于仅获得左联接的第一行的主题,但是由于某种原因,这对我不起作用。 这是我的结构(当然是简化的) 提要 id | title | content ---------------------- 1 | Feed 1 | ... 艺人 artist_id | artist_name ----------------------- 1 | Artist 1 2 | Artist 2 feeds_artists rel_id | artist_id | feed_id ---------------------------- 1 | 1 | 1 2 | 2 | 1 ... 现在我想获取文章并仅加入第一位艺术家,我想到了这样的事情: SELECT * FROM …

4
熊猫加入问题:列重叠但未指定后缀
我有以下2个数据帧: df_a = mukey DI PI 0 100000 35 14 1 1000005 44 14 2 1000006 44 14 3 1000007 43 13 4 1000008 43 13 df_b = mukey niccdcd 0 190236 4 1 190237 6 2 190238 7 3 190239 4 4 190240 7 当我尝试加入这两个数据框时: join_df = df_a.join(df_b,on='mukey',how='left') 我得到错误: …
136 python  join  pandas 

2
SQL连接同一表中的多个列
我有2个子查询,但是我无法将同一表中的列连接在一起。我试过了: SELECT * FROM (SELECT userid, listid FROM user_views_table WHERE date='2013-05-15' AND view_type='lists') a JOIN (SELECT sourceid, destinationid FROM actions_table WHERE date='2013-05-15' AND payloadtype='lists_user' AND actiontype='delete') b ON a.userid = b.sourceid ON a.listid = b.destinationid; 如果我简单地以查询结束查询ON a.userid = b.sourceid就可以了,但是如何将这些表也连接到另一列上呢ON a.listid = b.destinationid? 任何帮助表示赞赏。
133 sql  join 

2
MySQL加入where子句
我有两个要加入的表。 我想要类别表中的所有类别以及用户在category_subscriptions表中订阅的所有类别。 基本上这是我到目前为止的查询: SELECT * FROM categories LEFT JOIN user_category_subscriptions ON user_category_subscriptions.category_id = categories.category_id 这工作正常,但是我想在查询的末尾添加一个where子句,然后从本质上使其成为内部/公平联接。 SELECT * FROM categories LEFT JOIN user_category_subscriptions ON user_category_subscriptions.category_id = categories.category_id WHERE user_category_subscriptions.user_id = 1 如何仅使用一个查询获取特定用户订阅的所有类别以及所有类别? category_id是类别表和user_category_subscriptions中的键。驻留在user_category_subscriptions表中的user_id。 谢谢
130 mysql  join  where-clause 


3
为什么data.tables的X [Y]联接不允许完全外部联接或左联接?
这是关于data.table连接语法的一个哲学问题。我发现data.tables有越来越多的用途,但仍在学习... X[Y]data.tables的联接格式非常简洁,方便且有效,但是据我所知,它仅支持内部联接和正确的外部联接。要获得左侧或完全外部联接,我需要使用merge: X[Y, nomatch = NA] -Y中的所有行-右外部联接(默认) X[Y, nomatch = 0] -仅X和Y都匹配的行-内部联接 merge(X, Y, all = TRUE) -X和Y的所有行-完全外部联接 merge(X, Y, all.x = TRUE) -X中的所有行-左外部联接 在我看来,如果X[Y]连接格式支持所有4种连接类型,那将很方便。是否仅支持两种类型的联接? 对我来说,nomatch = 0和nomatch = NA参数值对于正在执行的动作不是很直观。这是我更容易理解和记忆的merge语法:all = TRUE,all.x = TRUE和all.y = TRUE。由于X[Y]操作merge远不止于match,为什么不对merge联接使用语法而不是match函数的nomatch参数? 以下是4种联接类型的代码示例: # sample X and Y data.tables library(data.table) X <- data.table(t = 1:4, a …
123 r  join  data.table 

4
MySQL多个联接一个查询?
我有以下查询: SELECT dashboard_data.headline, dashboard_data.message, dashboard_messages.image_id FROM dashboard_data INNER JOIN dashboard_messages ON dashboard_message_id = dashboard_messages.id 所以我正在使用INNER JOIN并抓住image_id。所以现在,我要获取该image_id并将其images.filename从图像表中转换成。 如何将其添加到查询中?
121 mysql  sql  join 

2
boost :: algorithm :: join的一个很好的例子
我最近想使用boost :: algorithm :: join,但是我找不到任何用法示例,也不想花很多时间学习Boost Range库只是为了使用这一功能。 谁能提供一个很好的示例,说明如何在字符串容器上使用join?谢谢。
116 c++  string  boost  join 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.