标签: join

交叉连接有什么用途?

交叉连接在两组元组上执行笛卡尔积.

SELECT *
FROM Table1
CROSS JOIN Table2
Run Code Online (Sandbox Code Playgroud)

哪种情况下这样的SQL操作特别有用?

sql database join relational-database

97
推荐指数
5
解决办法
6万
查看次数

在mysql查询中使用if条件计数

我有两个表,一个用于新闻,另一个用于评论,我想得到其状态已被批准的评论的计数.

SELECT
    ccc_news . *, 
    count(if(ccc_news_comments.id = 'approved', ccc_news_comments.id, 0)) AS comments
FROM
    ccc_news
    LEFT JOIN
        ccc_news_comments
    ON ccc_news_comments.news_id = ccc_news.news_id
WHERE
    `ccc_news`.`category` = 'news_layer2'
    AND `ccc_news`.`status` = 'Active'
GROUP BY
    ccc_news.news_id
ORDER BY
    ccc_news.set_order ASC
LIMIT 20 
Run Code Online (Sandbox Code Playgroud)

但是这个查询的问题是,对于该列提取的最小值是1是否存在与该消息相对应的任何注释.

任何帮助都会非常值得赞赏.

mysql if-statement join count

97
推荐指数
5
解决办法
19万
查看次数

为什么LINQ JOIN比使用WHERE链接要快得多?

我最近升级到了VS 2010,正在玩LINQ to Dataset.我有一个强大的类型化的Authorization数据集,它位于ASP.NET WebApplication的HttpCache中.

所以我想知道实际上检查用户是否有权做某事的最快方法.如果有人感兴趣的话,是我的数据模型和其他一些信息.

我检查了3种方法:

  1. 直接数据库
  2. LINQ查询的Where条件为"Join" - 语法
  3. 带有Join的 LINQ查询- 语法

这些是每个函数1000次调用的结果:

1.Iteration:

  1. 4,2841519秒
  2. 115,7796925秒
  3. 2,024749秒

2.Iteration:

  1. 3,1954857秒
  2. 84,97047秒
  3. 1,5783397秒

3.Iteration:

  1. 2,7922143秒
  2. 97,8713267秒
  3. 1,8432163秒

平均:

  1. 数据库:3,4239506333秒.
  2. 其中:99,5404964秒.
  3. 加入:1,815435秒.

为什么Join-version比where-syntax快得多,这使得它无用尽管作为LINQ新手它似乎是最清晰的.或者我在查询中遗漏了什么?

这是LINQ查询,我跳过数据库:

地点:

Public Function hasAccessDS_Where(ByVal accessRule As String) As Boolean
    Dim userID As Guid = DirectCast(Membership.GetUser.ProviderUserKey, Guid)
    Dim query = From accRule In Authorization.dsAuth.aspnet_AccessRule, _
                roleAccRule In Authorization.dsAuth.aspnet_RoleAccessRule, _
                role In Authorization.dsAuth.aspnet_Roles, _
                userRole In Authorization.dsAuth.aspnet_UsersInRoles _
                Where accRule.idAccessRule = roleAccRule.fiAccessRule …
Run Code Online (Sandbox Code Playgroud)

.net linq performance join linq-to-dataset

96
推荐指数
3
解决办法
2万
查看次数

在R中合并/加入data.frames的最快方法是什么?

例如(不确定是否最具代表性的例子):

N <- 1e6
d1 <- data.frame(x=sample(N,N), y1=rnorm(N))
d2 <- data.frame(x=sample(N,N), y2=rnorm(N))
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所得到的:

d <- merge(d1,d2)
# 7.6 sec

library(plyr)
d <- join(d1,d2)
# 2.9 sec

library(data.table)
dt1 <- data.table(d1, key="x")
dt2 <- data.table(d2, key="x")
d <- data.frame( dt1[dt2,list(x,y1,y2=dt2$y2)] )
# 4.9 sec

library(sqldf)
sqldf()
sqldf("create index ix1 on d1(x)")
sqldf("create index ix2 on d2(x)")
d <- sqldf("select * from d1 inner join d2 on d1.x=d2.x")
sqldf()
# 17.4 sec
Run Code Online (Sandbox Code Playgroud)

performance merge join r data.table

94
推荐指数
4
解决办法
4万
查看次数

SQLite - 如何连接来自不同数据库的表?

我有一个使用SQLite数据库的应用程序,一切都按照应有的方式工作.我现在正在添加需要第二个SQLite数据库的新功能,但我很难弄清楚如何从不同的数据库连接表.

如果有人可以帮我解决这个问题,我真的很感激!

编辑:请参阅此问题以获取示例案例,您可以在附加数据库时调整您的语言,如接受的答案中所述.

sql database sqlite join

93
推荐指数
2
解决办法
6万
查看次数

如何在SQLite上连接表时进行更新?

我试过了 :

UPDATE closure JOIN item ON ( item_id = id ) 
SET checked = 0 
WHERE ancestor_id = 1
Run Code Online (Sandbox Code Playgroud)

和:

UPDATE closure, item 
SET checked = 0 
WHERE ancestor_id = 1 AND item_id = id
Run Code Online (Sandbox Code Playgroud)

两者都适用于MySQL,但那些在SQLite中给我一个语法错误.

如何使这个UPDATE/JOIN与SQLite版本3.5.9一起使用?

sqlite join sql-update

92
推荐指数
2
解决办法
5万
查看次数

如何在没有ON条件的情况下使用mysql JOIN?

是否可以在没有ON语句的情况下编写连接查询?以及这些联接如何LEFT JOIN, RIGHT JOIN起作用.

mysql join inner-join left-join right-join

90
推荐指数
3
解决办法
12万
查看次数

考虑可扩展性时,为什么连接会变坏?

为什么加入不好或'慢'.我知道我多听过一次.我找到了这个引用

问题是连接速度相对较慢,特别是在非常大的数据集上,如果它们很慢,那么您的网站速度很慢.从磁盘上获取所有这些独立的信息并将它们全部放在一起需要很长时间.

资源

我一直认为他们特别快,特别是在查找PK时.他们为什么"慢"?

sql join

89
推荐指数
8
解决办法
2万
查看次数

MySQL中JOIN和OUTER JOIN的区别

结果有什么不同:

  1. 正确的加入和正确的外部联接
  2. LEFT JOIN和LEFT OUTER JOIN?

你能通过一些例子解释一下吗?

sql join left-join outer-join right-join

87
推荐指数
4
解决办法
9万
查看次数

MySQL中逗号分隔的连接和语法连接之间有什么区别?

例如,如果我有一个表"Person",其列"id"引用表"Worker"中的列"id"

这两个查询之间有什么区别?它们产生相同的结果.

SELECT * 
FROM Person 
JOIN Worker 
  ON Person.id = Worker.id;
Run Code Online (Sandbox Code Playgroud)

SELECT * 
FROM Person, 
     Worker 
WHERE Person.id = Worker.id;
Run Code Online (Sandbox Code Playgroud)

谢谢

mysql sql syntax join

86
推荐指数
4
解决办法
7万
查看次数