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)
原来这里面没有厂商名单。我认为子查询有问题。
作用域是获取所有Bid由AND创建的元素, userId并且是Project projectIdAND 的一部分,其中存在 a Decision,Bid其上的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) 我有两个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 JOIN和LIMIT
我做了以下功能:
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) 我有两张桌子:
表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)
我已经尝试过union,join但不知道如何实现这一目标。
-- 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) 我已经写了这个查询
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) 我在下面查询,查询返回正确的结果,但是当表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) [
{
"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 子查询中实现它。任何人都可以指导我或提供一些建议。欣赏它。
我需要根据另一个表选择一些用户.
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)
但这并不会返回任何数据.任何想法如何检索正确的结果?
我有这张桌子

我想先做子查询,然后将它们按日期分组添加在一起
预期结果应该是这样的:

正在运行此查询
(
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)
并得到这个结果

感谢您的帮助
subquery ×9
sql ×6
mysql ×4
sql-server ×2
collections ×1
database ×1
dataset ×1
group-by ×1
hibernate ×1
inner-join ×1
join ×1
laravel ×1
logic ×1
php ×1
select ×1