标签: union

使用codeigniter的活动记录模式进行UNION查询

如何使用PHP CodeIgniter框架的活动记录查询格式进行UNION查询?

mysql sql union activerecord codeigniter

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

使用LIMIT语句组合两个sql select查询(在postgres中)

我有一个表,我想要一个查询,返回创建的最后10条记录加上id为x的记录.

我正在努力 -

SELECT * FROM catalog_productimage
ORDER BY date_modified
LIMIT 10
UNION
SELECT * FROM catalog_productimage
WHERE id=5;
Run Code Online (Sandbox Code Playgroud)

但它看起来不像我LIMIT之前可以放在那里UNION.我尝试添加另一列并使用它进行排序 -

SELECT id, date_modified, IF(false, 1, 0) as priority FROM catalog_productimage
UNION
SELECT, id, date_modified, IF(true, 1, 0) as priority FROM catalog_productimage
WHERE id=5
ORDER BY priority, date_modified
LIMIT 10;
Run Code Online (Sandbox Code Playgroud)

但我没有取得多大进展..

sql postgresql union select limit

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

一种在MySql中对UNION的结果求和的简单方法

我有三个表的联合(t1,t2,t3).每次重新运行完全相同的记录数,第一列是id,第二列是:

1  10
2  20
3  20

1  30
2  30
3  10

1  20
2  40
3  50
Run Code Online (Sandbox Code Playgroud)

是否有一个简单的SQL方式来总结它只得到:

1   60
2   80
3   80
Run Code Online (Sandbox Code Playgroud)

mysql sql union

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

使用UNION时无法识别json []类型的等号运算符

我正在尝试使用UNION规则在单个表上执行多个查询

我有两张桌子:

  • 项目(id,name,pinned BOOLEAN)
  • 技能(m2m到项目)

我希望首先得到一组pinned设置为的行,true并用最新的条目填充剩余的(pinned设置为false)

SELECT
  project.id AS project_id,
  project.name AS project_name,
  array_agg(json_build_object('skill_id', project_skills.id,'name', project_skills.skill)) AS skills
from project
LEFT OUTER JOIN project_skills on project.name = project_skills.project
WHERE project.pinned = true
GROUP BY project_id,project_name

UNION

SELECT
  project.id AS project_id,
  project.name AS project_name,
  array_agg(json_build_object('skill_id', project_skills.id,'name', project_skills.skill)) AS skills
from project
LEFT OUTER JOIN project_skills on project.name = project_skills.project
WHERE project.id != 1 AND project.pinned = false
GROUP BY project_id,project_name
ORDER …
Run Code Online (Sandbox Code Playgroud)

postgresql union json

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

如何将sql union转换为linq

我有一个使用union的以下Transact SQL查询.我需要一些关于在LINQ中看起来如何看的指针,即一些例子会很好或者如果有人可以在linq上推荐一个关于UNIONS的好教程.

select top 10 Barcode, sum(ItemDiscountUnion.AmountTaken) from
(SELECT d.Barcode,SUM(AmountTaken) AmountTaken
  FROM [Aggregation].[dbo].[DiscountPromotion] d

  GROUP BY d.Barcode

  UNION ALL

  SELECT i.Barcode,SUM(AmountTaken) AmountTaken
  FROM [Aggregation].[dbo].ItemSaleTransaction i

  group by i.Barcode)  ItemDiscountUnion

  group by Barcode
Run Code Online (Sandbox Code Playgroud)

请注意,原始SQL正在 合并 2个选择NOT连接它们.我需要知道如何合并结果,即删除重复项,并根据条形码对存在重复的行数值求和.

c# sql linq union

26
推荐指数
3
解决办法
5万
查看次数

有没有更简洁的linq方式来'联盟'单项?

如果我有两个序列并且我想要将它们一起处理,我可以将它们联合起来然后我们去.

现在假设我有一个项目,我想在两个序列之间处理.我可以通过创建一个包含单个项目的数组来获取它,但是有更简洁的方法吗?即

var top = new string[] { "Crusty bread", "Mayonnaise" };
string filling = "BTL";
var bottom = new string[] { "Mayonnaise", "Crusty bread" };

// Will not compile, filling is a string, therefore is not Enumerable
//var sandwich = top.Union(filling).Union(bottom);

// Compiles and works, but feels grungy (looks like it might be smelly)
var sandwich = top.Union(new string[]{filling}).Union(bottom);

foreach (var item in sandwich)
    Process(item);
Run Code Online (Sandbox Code Playgroud)

是否有批准的方式,或者这是批准的方式?

谢谢

c# linq union

26
推荐指数
4
解决办法
5526
查看次数

SQL Server:如何将UNION与两个具有WHERE子句的查询一起使用?

鉴于:

两个需要过滤的查询:

select top 2 t1.ID, t1.ReceivedDate
  from Table t1
 where t1.Type = 'TYPE_1'
 order by t1.ReceivedDate desc
Run Code Online (Sandbox Code Playgroud)

和:

select top 2 t2.ID
  from Table t2
 where t2.Type = 'TYPE_2'
 order by t2.ReceivedDate desc
Run Code Online (Sandbox Code Playgroud)

另外,这些返回ID我正在寻找的:(13,11和12,6)

基本上,我想要两个特定类型数据的两个最新记录.

我想将这两个查询结合在一起,如下所示:

select top 2 t1.ID, t2.ReceivedDate
  from Table t1
 where t1.Type = 'TYPE_1'
 order by ReceivedDate desc
union
select top 2 t2.ID
  from Table t2
 where t2.Type = 'TYPE_2'
 order by ReceivedDate desc
Run Code Online (Sandbox Code Playgroud)

问题:

问题是这个查询是无效的,因为第一个查询select不能有一个order by子句unioned.它 …

sql-server union where-clause

26
推荐指数
3
解决办法
13万
查看次数

如果我们知道元素是唯一的,那么扩展集合的快速方法

我正在执行该类型的多次迭代:

masterSet=masterSet.union(setA)
Run Code Online (Sandbox Code Playgroud)

随着集合的增长,执行这些操作所需的时间也在增长(正如人们所预料的那样,我猜).

我希望花时间检查setA的每个元素是否已经在masterSet中?

我的问题是,如果我知道masterSet还没有包含setA中的任何元素,我可以更快地做到这一点吗?

[UPDATE]

鉴于这个问题仍然吸引了观点,我想我会从以下评论和答案中清除一些问题:

虽然迭代虽然有许多迭代,我知道 这些迭代setAmasterSet因为它的构造方式而不同(不必处理任何检查),但是我需要进行一些迭代,我需要进行唯一性检查.

我想知道是否有一种方法可以"告诉" masterSet.union()程序不要再费心于这次的单一性检查了,因为我知道这一点不同于masterSet仅仅添加这些元素,很快就相信程序员的断言他们肯定会受到干扰.Perhpas通过调用一些不同的" .unionWithDistinctSet()"程序或其他东西.

我认为答案已经表明这是不可能的(并且真正设置操作应该足够快)但是使用masterSet.update(setA)而不是联合作为其稍微快一点.

我接受了最清楚的回应,解决了我当时遇到的问题并继续我的生活,但是如果我的假设.unionWithDistinctSet()能够存在,我仍然会喜欢听到这个问题吗?

python union set

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

从union tsql中选择

是否可以从联盟的结果中进行选择?例如,我正在尝试做类似的事情:

SELECT A
FROM
(
    SELECT A, B FROM TableA
    UNION
    SELECT A, B FROM TableB
)
WHERE B > 'some value'
Run Code Online (Sandbox Code Playgroud)

我错过了什么或假设这是如何工作的?我正在使用MSSQL 2005,因此任何解决方案都需要符合我在那里可以做的事情.

sql union sql-server-2005

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

如何在t-sql中使用group with with union

如何在t-sql中使用group by with union?我想按联合结果的第一列分组,我写了下面的sql但它不起作用.我只是不知道如何引用union结果的指定列(在本例中为1).十分感谢.

SELECT  *
FROM    ( SELECT    a.id ,
                    a.time
          FROM      dbo.a
          UNION
          SELECT    b.id ,
                    b.time
          FROM      dbo.b
        )
GROUP BY 1
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server union group-by

24
推荐指数
3
解决办法
11万
查看次数