标签: subquery

我的 SQL 查询中的子查询错误

https://screenshot.googleplex.com/j4igYFL9sjH 查找还生产 RAM 容量最低的 PC 的打印机制造商,以及所有具有最低 RAM 容量的 PC 中处理器速度最高的打印机制造商。结果集:制造商。

我的查询:

SELECT maker FROM Product WHERE type ='Printer' AND model IN(SELECT DISTINCT(model), hd, ram FROM PC 
                        WHERE hd = (
                                SELECT MAX(hd) FROM PC 
                                     WHERE model IN(SELECT DISTINCT(model) FROM PC
                                                                       WHERE ram <=(SELECT MIN(ram) FROM PC))));
Run Code Online (Sandbox Code Playgroud)

原来这里面没有厂商名单。我认为子查询有问题。

sql logic subquery

0
推荐指数
1
解决办法
2224
查看次数

Hibernate Criteria Subquery HibernateException: Unknown entity: null

作用域是获取所有Bid由AND创建的元素, userId并且是Project projectIdAND 的一部分,其中存在 a DecisionBid其上的Verb.verbString 是"accepted"

但是,我得到了一个

org.hibernate.HibernateException: Unknown entity: null
Run Code Online (Sandbox Code Playgroud)

尝试将其实现为以下查询和子查询对时的异常:

DetachedCriteria accepedBidIds = DetachedCriteria.forClass(DecisionOnBid.class, "dec")
        .createAlias("dec.bid", "dec_bid")
        .add(Restrictions.eq("verb.verb", "accepted"))
        .setProjection(Projections.property("dec_bid.id"));

Criteria query = sessionFactory.getCurrentSession().createCriteria(Bid.class).createAlias("cbtion.project","proj");
query.add(Restrictions.and(
        Restrictions.like("creator.id", userId),
        Restrictions.like("proj.id", projectId),
        Subqueries.eq("id", accepedBidIds)));

List<Bid> bids = (List<Bid>) query.list();
Run Code Online (Sandbox Code Playgroud)

这些是我的实体。我故意避免双向依赖。

@Entity
@Table( name = "bids" )
public class Bid {

    @Id
    @GeneratedValue(generator="increment")
    @GenericGenerator(name="increment", strategy = "increment")
    private int id;
    @ManyToOne
    private Cbtion cbtion = new Cbtion();
    @ManyToOne
    private …
Run Code Online (Sandbox Code Playgroud)

hibernate subquery detachedcriteria

0
推荐指数
1
解决办法
4029
查看次数

带有内部连接和限制的mysql子查询

我有两个recipes_sa带列的表:

recipes_id   recipes_name   recipes_chef
----------   ------------   ------------
Run Code Online (Sandbox Code Playgroud)

chefs_sa带有列:

chefs_id   chefs_name
--------   ----------
Run Code Online (Sandbox Code Playgroud)

我想获得有限数量的食谱,其中包含他们的厨师详细信息,使用INNER JOINLIMIT

我做了以下功能:

function getLimitJoinData($data, $tbls, $ids, $abr, $type, $limit) {

            $dataToSelect = implode($data, ',');

            $q = "SELECT $dataToSelect";

            $q.= " FROM (SELECT * FROM $tbls[0] LIMIT $limit) $abr";


            for ($i=1; $i < count($tbls); $i++) { 
                $q .= " ".$type." JOIN ". $tbls[$i] ." ON " . $abr.'.recipes_chef' .' = '. $ids[$i-1][0];   
            }
        }
Run Code Online (Sandbox Code Playgroud)

查询是这样的

SELECT chefs_sa.chefs_name,
       recipes_sa.recipes_name 
FROM (SELECT * …
Run Code Online (Sandbox Code Playgroud)

mysql inner-join subquery

0
推荐指数
1
解决办法
362
查看次数

如何覆盖另一个表中的行?

我有两张桌子:

表A

ID  Name
--  ----
1   aaa
2   bbb
3   ccc
4   ddd
Run Code Online (Sandbox Code Playgroud)

表B

ID  Name
--  --------
3   WWXXYYZZ
Run Code Online (Sandbox Code Playgroud)

我想从两个表中进行选择,但跳过 TableB 中存在的行。结果应该是这样的:

ID  Name
--  --------
1   aaa
2   bbb
3   WWXXYYZZ
4   ddd
Run Code Online (Sandbox Code Playgroud)

我已经尝试过unionjoin但不知道如何实现这一目标。

-- Did not work
select *
from TableA
union
select *
from TableB

-- Did not work
select *
from
(
    select *
    from TableA
) x
join
(
    select *
    from TableB
) y
on x.ID = y.ID
Run Code Online (Sandbox Code Playgroud)

sql sql-server select join subquery

0
推荐指数
1
解决办法
570
查看次数

在这种情况下,为什么我需要创建子查询而不是仅仅进行比较?

我已经写了这个查询

SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME
FROM employees
WHERE SALARY > (SELECT AVG(SALARY)
                FROM employees)
Run Code Online (Sandbox Code Playgroud)

我有点困惑为什么我必须为它创建一个子查询以及为什么我不能像这样编写查询:

SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME
FROM employees
WHERE SALARY > AVG(SALARY)
Run Code Online (Sandbox Code Playgroud)

sql sql-server subquery

0
推荐指数
1
解决办法
83
查看次数

请帮我优化MySQL查询

我在下面查询,查询返回正确的结果,但是当表cslogcurve_datanode中有超过10000行时,My Query需要花费很长时间,我想询问如何为我的查询优化或最好的sintax并且必须返回相同的结果我的查询如下

 SELECT DISTINCT
    (SELECT dataNode FROM cslogcurve_datanode s1 WHERE logCurveInfoUID = 'W-12B-01f34a-lci-1' AND s1.baseNodeDouble = t.baseNodeDouble) AS R1,
    (SELECT dataNode FROM cslogcurve_datanode s1 WHERE logCurveInfoUID = 'W-12B-01f34a-lci-10' AND s1.baseNodeDouble = t.baseNodeDouble) AS R2
     (SELECT dataNode FROM cslogcurve_datanode s1 WHERE logCurveInfoUID = 'W-12B-01f34a-lci-11' AND s1.baseNodeDouble = t.baseNodeDouble) AS R3,
     (SELECT dataNode FROM cslogcurve_datanode s1 WHERE logCurveInfoUID = 'W-12B-01f34a-lci-12' AND s1.baseNodeDouble = t.baseNodeDouble) AS R4,
     (SELECT dataNode FROM cslogcurve_datanode s1 WHERE logCurveInfoUID = 'W-12B-01f34a-lci-13' AND s1.baseNodeDouble = t.baseNodeDouble) AS …
Run Code Online (Sandbox Code Playgroud)

mysql sql subquery

-2
推荐指数
1
解决办法
66
查看次数

如何在laravel php中从数据集编写子查询

数据集

[
     {
        "agent_id": "D01",
        "amount": "2"
     },
     {
        "agent_id": "D01",
        "amount": "2"
     },
     {
        "agent_id": "A01",
        "amount": "1"
     },
     {
        "agent_id": "A01",
        "amount": "1"
     },
    
]
Run Code Online (Sandbox Code Playgroud)

预期结果

[
     {
        "agent_id": "D01",
        "amount": "4"
     },
     {
        "agent_id": "A01",
        "amount": "2"
     },
   
]
Run Code Online (Sandbox Code Playgroud)

你好,有一个原始数据集,有 4 个集合,如上图所示。我试图用 group byagent_id和 sum of the来转换数据amount

我计划使用子查询 likes select agent_id, sum(amount) from (Dataset) group by agent_id,但是我不知道如何在 laravel 子查询中实现它。任何人都可以指导我或提供一些建议。欣赏它。

php collections subquery dataset laravel

-2
推荐指数
1
解决办法
41
查看次数

SQL:在select语句中应用"where in"

我需要根据另一个表选择一些用户.

表结构

users

id     name
1      John
2      sarah
3      nick
Run Code Online (Sandbox Code Playgroud)

level

id     list
1      1,2
2      3,5,6
3      1,2,3
Run Code Online (Sandbox Code Playgroud)

我试过了

select *
from users
where id in (select list from level where id = 2)
Run Code Online (Sandbox Code Playgroud)

但这并不会返回任何数据.任何想法如何检索正确的结果?

mysql sql subquery

-3
推荐指数
1
解决办法
87
查看次数

计算 2 个子查询,然后按日期分组 - mysql

我有这张桌子

附上图片

我想先做子查询,然后将它们按日期分组添加在一起

预期结果应该是这样的:

随附的

正在运行此查询

(
SELECT DATE_FORMAT(dd1.modified_datetime,'%Y-%m-%d') as date, (v1+v2) as value FROM
    (SELECT modified_datetime, Sum(data->"$.amount") as v1
        FROM transactions
        GROUP BY modified_datetime) as dd1 ,            
    (SELECT modified_datetime, MAX(data->"$.amount") as v2
        FROM transactions
        GROUP BY modified_datetime) as dd2

    GROUP BY dd1.modified_datetime, value
)
Run Code Online (Sandbox Code Playgroud)

并得到这个结果

随附的

感谢您的帮助

mysql sql database group-by subquery

-3
推荐指数
1
解决办法
160
查看次数