标签: full-outer-join

如何在MySQL中进行全面的连接?

我想在MySQL中进行全外连接.这可能吗?MySQL是否支持Full Outer Join?

mysql sql join outer-join full-outer-join

614
推荐指数
6
解决办法
63万
查看次数

LINQ - 全面加入

我列出了人员的姓名和名字,以及人员姓名和姓氏的清单.有些人没有名字,有些人没有姓氏; 我想在两个列表上进行完全外连接.

所以以下列表:

ID  FirstName
--  ---------
 1  John
 2  Sue

ID  LastName
--  --------
 1  Doe
 3  Smith
Run Code Online (Sandbox Code Playgroud)

应该产生:

ID  FirstName  LastName
--  ---------  --------
 1  John       Doe
 2  Sue
 3             Smith
Run Code Online (Sandbox Code Playgroud)

我是LINQ的新手(如果我是跛脚的话,请原谅我)并找到了很多"LINQ Outer Joins"的解决方案,这些解决方案看起来非常相似,但实际上似乎是留下了外部联接.

到目前为止,我的尝试是这样的:

private void OuterJoinTest()
{
    List<FirstName> firstNames = new List<FirstName>();
    firstNames.Add(new FirstName { ID = 1, Name = "John" });
    firstNames.Add(new FirstName { ID = 2, Name = "Sue" });

    List<LastName> lastNames = new List<LastName>();
    lastNames.Add(new LastName { ID = 1, Name = "Doe" …
Run Code Online (Sandbox Code Playgroud)

.net c# linq outer-join full-outer-join

184
推荐指数
7
解决办法
11万
查看次数

SQL Server:CROSS JOIN和FULL OUTER JOIN有什么区别?

SQL Server中的CROSS JOIN和FULL OUTER JOIN有什么区别?

他们是一样的,不是吗?请解释.什么时候会使用其中任何一个?

sql-server cross-join full-outer-join

177
推荐指数
8
解决办法
20万
查看次数

与SQLite完全合作

SQLite只有INNER和LEFT JOIN.

有没有办法与SQLite进行完全外连接?

sql sqlite join full-outer-join

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

如何在Linq中进行完全外连接?

我继承了一个没有完全优化设计的数据库,我需要操作一些数据.让我对我必须做的事情做一个更常见的比喻:

假设我们有一张Student桌子,一张StudentClass桌子记录了他参加的所有课程,还有一张StudentTeacher桌子可以存储教授这名学生的所有老师.是的,我知道这是一个愚蠢的设计,将老师存放在Class表上更有意义 - 但这就是我们正在使用的.

我现在想要清理数据,我想找到一个学生有老师但没有上课但是上课但没有老师的所有地方.SQL因此:

select *
from StudentClass sc
full outer join StudentTeacher st on st.StudentID = sc.StudentID
where st.id is null or sc.id is null
Run Code Online (Sandbox Code Playgroud)

你是怎么在Linq那样做的?

c# linq outer-join linq-to-sql full-outer-join

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

多个表上的多个FULL OUTER JOIN

我有多个外连接

SELECT  A.column2
        , B.column2
        , C.column2
FROM 
(
    (SELECT month, column2 FROM table1) A
    FULL OUTER JOIN
    (SELECT month, column2 FROM table2) B on A.month= B.month
    FULL OUTER JOIN 
    (SELECT month, column2 FROM table3) C on A.month= C.month
)
Run Code Online (Sandbox Code Playgroud)

现在最后一次加入有一个问题,它在A的月份超过B时重复,但是如果B有更多的月份A我们在C中有OUTER JOIN,而A现在重复,所以我想有一个完整的外部加入两个表可能会解决问题?任何深入的链接?

示例数据(不正确)

??????????????????????????????????????
?  Revenue   ? Budget  ? ActualMonth ?
??????????????????????????????????????
?     6.9172 ? 3.5046  ? Jan         ?
?     7.3273 ? 3.7383  ? Feb         ?
?     7.3273 ? 3.9719  ? Mar         ?
?     7.2726 ? 4.2056  ? Apr         ? …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2005 full-outer-join

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

MySQL:FULL OUTER JOIN - 如何合并一列?

亲爱的每个人,
首先,我要感谢在这个页面回答问题的人们,感谢你们在这里所做的出色工作.我在编程方面不是很有经验,这个页面对我来说是一个巨大的帮助.

现在来谈谈我在MySQL中完全外部加入的具体问题.我有两个(或更多表):

table1      table2
id  value   id  value2
1   a       1   b
2   c       3   d
3   e       4   f

我使用此查询来获取我的联接:

SELECT * 
FROM table1
LEFT OUTER JOIN table2
ON table1.`id`=table2.`id`
UNION
SELECT * 
FROM table1
RIGHT OUTER JOIN table2
ON table1.`id`=table2.`id`
Run Code Online (Sandbox Code Playgroud)

要得到:

id   value1  id   value2 
1    a       1    b
2    c       NULL NULL
3    e       3    d
NULL NULL    4    f

我的问题是我没有设法同时将两个id列折叠成一列来得到这个:

id   value1  value2 
1    a       b
2    c       NULL
3    e       d
4    NULL    f …

mysql sql union full-outer-join

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

找出PostgreSQL中两个大表之间的区别

我在Postgres中有两个类似的表,只有一个32字节的拉丁字段(简单的md5哈希).两个表都有~30,000,000行.表没什么区别(10-1000行不同)

Postgres是否可以找到这些表之间的差异,结果应该是我上面描述的10-1000行.

这不是一个真正的任务,我只想知道PostgreSQL如何处理类似JOIN的逻辑.

sql postgresql exists left-join full-outer-join

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

MySQL FULL JOIN不工作但右和左连接工作

这让我疯了.我有两个表,我试图进行连接,usersXstats和usersXstats_alltime.

两个表都具有相同的列:id,userId,statId和value

我想做的是

SELECT * 
FROM usersXstats 
FULL JOIN usersXstats_alltime 
ON usersXstats.userId=usersXstats_alltime.userId 
AND usersXstats.statId=usersXstats_alltime.statId
Run Code Online (Sandbox Code Playgroud)

然而,这是回归

Unknown column 'usersXstats.userId' in 'on clause'
Run Code Online (Sandbox Code Playgroud)

使用LEFT JOIN,RIGHT JOIN或INNER JOIN替换FULL JOIN时,此查询的工作方式与预期相同.

为了使它最初易于阅读,我编写了以下查询:

SELECT * 
FROM usersXstats as uxs 
FULL JOIN usersXstats_alltime as uxsat 
ON uxs.userId=uxsat.userId 
AND uxs.statId=uxsat.statId
Run Code Online (Sandbox Code Playgroud)

哪个返回了不同的错误:

check the manual that corresponds to your MySQL server version for the right syntax to use near 'FULL JOIN usersXstats_alltime as uxsat ON uxs.userId=uxsat.userId AND uxs.statId' at line 1

我究竟做错了什么?提前致谢!

mysql join full-outer-join

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

SQLite3使用LEFT JOIN和UNION模拟RIGHT OUTER JOIN

我有以下select语句,我需要从表tbTasks中对每个任务求和,并通过表tbProjects中的projectId对它们进行分组,以获得如下记录:

ProjectID = 1, ProjectName = 'My Project', TotalTime = 300 //<--sum of each task time
Run Code Online (Sandbox Code Playgroud)

查询如下所示:

SELECT tbTasks.projectId, 
       SUM(tbTasks.taskTime) AS totalTime, 
       tbProjects.projectName 
FROM tbTasks 
    INNER JOIN tbProjects ON tbTasks.projectId = tbProjects.projectId 
GROUP BY tbTasks.projectId 
ORDER BY tbProjects.created DESC
Run Code Online (Sandbox Code Playgroud)

这工作并执行正常,但有一个问题,如果一个项目没有与之关联的任务,那么我根本没有得到任何记录(我想获得projectId,projectName和0或NULL的totalTime).所以,为了正确加入表格,tbProjects SQLite3迫使我以圆形方式进行.

SELECT tbTasks.projectId, 
       SUM(tbTasks.taskTime) AS totalTime, 
       tbProjects.projectName 
FROM tbTasks LEFT OUTER JOIN tbProjects
       ON tbTasks.projectId = tbProjects.projectId 
GROUP BY tbTasks.projectId 
UNION 
SELECT tbProjects.projectId, 
       SUM(tbTasks.taskTime) AS totalTime, 
       tbProjects.projectName   
FROM tbProjects LEFT OUTER JOIN tbTasks 
      ON tbProjects.projectId = tbTasks.projectId 
GROUP BY tbTasks.projectId …
Run Code Online (Sandbox Code Playgroud)

sql sqlite union group-by full-outer-join

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