【问题标题】:Selecting distinct values from joined results in Mysql从 Mysql 中的连接结果中选择不同的值
【发布时间】:2018-03-08 19:20:40
【问题描述】:

我试图从 mysql 中的两个表中访问完整的数据,然后从结果集中找到列的不同值。尝试使用嵌套查询如下:-

Select distinct s.BlockName 
from (SELECT * 
      FROM constucted
      LEFT JOIN required ON constucted.BlockName = required.BlockName 

      UNION

      SELECT * 
      FROM constucted
      RIGHT JOIN required ON constucted.BlockName = required.BlockName
     ) s

Stackoverflow Reference 中所述 并尝试使用 with 关键字如下:-

WITH CTE
AS
(
   SELECT * 
   FROM constucted
   LEFT JOIN required ON constucted.BlockName = required.BlockName

   UNION

   SELECT * 
   FROM constucted
   RIGHT JOIN required ON constucted.BlockName = required.BlockName
)
SELECT DISTINCT BlockName
FROM CTE

但无法找到 BlockName 列的不同值,无法为其准备查询。

【问题讨论】:

  • 请输入样本数据和预期结果。谢谢。
  • 你的输出怎么错了?你看到重复了吗?缺失数据?还是接收错误?
  • 你用的是哪个版本的mysql???

标签: mysql sql


【解决方案1】:

您的查询似乎更简单地写成:

select BlockName 
from constructed
union -- intentional to remove duplicates
select BlockName
from required;

【讨论】:

  • 惊人的解决方案简直不敢相信我撞了几个小时。
猜你喜欢
  • 2013-10-19
  • 1970-01-01
  • 2011-11-15
  • 2012-12-22
  • 1970-01-01
  • 1970-01-01
  • 2014-01-27
  • 2013-11-28
  • 1970-01-01
相关资源
最近更新 更多