如何从联接中删除重复的行(SQL)

猫头鹰

我只需要从三个表中获取唯一行。我该怎么办?

我有一个SQL查询:

SELECT *
FROM l_req
LEFT JOIN p_req ON (p_req.uid = l_req.uid)
LEFT JOIN r_req ON (r_req.uid = l_req.uid)
WHERE l_req.uid = 100931362

表架构:

Table l_req

id column2 column3 uid

1     2      3      100931362
2     3      4      100931362
3     4      5      100931362

Table p_req

id column2 column3 uid

1     6      5      100931362

等等

查询结果:

id column2 column3 uid              id1  column21 column31 uid1
1     2       3     100931362        1       6       5       100931362
2     3       4     100931362        1       6       5       100931362
3     4       5     100931362        1       6       5       100931362

=>我有一个来自JOIN的重复行。

我需要这样的结果:

id column2 column3 uid              id1  column21 column31 uid1
1     2       3     100931362        1       6       5       100931362
2     3       4     100931362        NULL    NULL    NULL    NULL
3     4       5     100931362        NULL    NULL    NULL    NULL
罗比·阿夫里尔(Robbie Averill)

因为您的表结构看起来几乎相同,所以除了联接之外,还有其他选择。下面是使用一个可能的解决方案联盟

设置一个手动字段名​​,以标识行来自哪个表,以便您可以在合并后进行区分,因为否则结果将看起来都一样。

SELECT 'l_req' AS table_name, id, column2, column3, uid FROM l_req WHERE uid = 100931362
UNION ALL
SELECT 'p_req' AS table_name, id, column2, column3, uid FROM p_req WHERE uid = 100931362
UNION ALL
SELECT 'r_req' AS table_name, id, column2, column3, uid FROM r_req WHERE uid = 100931362

我在这里还假设您的r_req表具有与其他表相同的结构。您可以从此查询中获得如下所示的结果:

table_name  id  column2 column3 uid
l_req       1   2   3   100931362
l_req       2   3   4   100931362
l_req       3   4   5   100931362 
p_req       1   6   5   100931362 -- this is your extra result original from join

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL中的内部联接返回重复的行

来自分类Dev

在SQL中,如何删除基于多列的重复行?

来自分类Dev

如何删除Oracle SQL查询中的重复行

来自分类Dev

如何删除/重命名SQL中的重复列(不重复行)

来自分类Dev

在SQL中删除几乎重复的行

来自分类Dev

如何在Oracle中删除重复的行

来自分类Dev

SQL-从表中删除重复的行

来自分类Dev

如何使用自我联接重塑熊猫中的重复行?

来自分类Dev

如何使用SQL查询删除MySQL中的重复行?

来自分类Dev

如何从dolphindb表中删除重复行?

来自分类Dev

SQL:删除自我联接中的重复项

来自分类Dev

如何删除列行中的重复条目?

来自分类Dev

如何防止SQL交叉联接中的重复行

来自分类Dev

Ruby:如何从数组中删除重复的行?

来自分类Dev

如何在SQL中删除重复行?

来自分类Dev

如何从文件中删除重复的行?

来自分类Dev

SQL重复行多个联接

来自分类Dev

如何删除SQL中的重复行?

来自分类Dev

如何删除文件中特定的重复行?

来自分类Dev

SQL:查询联接中的重复行

来自分类Dev

如何在MySQL中删除重复的联接表记录?

来自分类Dev

如何删除在Mysql中重复的行

来自分类Dev

如何从行中删除重复的号码?

来自分类Dev

如何从SQL中的联接中删除重复的列

来自分类Dev

如何使用SQL查询删除MySQL中的重复行?

来自分类Dev

如何删除输出中的重复行?

来自分类Dev

如何使用 SQL 删除 MS Access DB 中的重复行

来自分类Dev

如何删除 SQL Server 中的重复行

来自分类Dev

删除 Oracle SQL 中的重复行