我正在试图查找不在应用程序表中的人数。
我有两个表(个人和应用程序)与人有一对多的关系与应用程序(person.id=application.person)。然而,一个人可能没有申请。应用程序表中大约有35K条记录。为了这篇文章,我减少了查询,但仍然产生了问题。我希望第一个查询会产生与第二个查询相同的结果,但它没有。
为什么这个查询会产生零结果:
select count(*)
from person p where (p.id not in (
select person
from application
))
当此查询产生预期结果时:
select count(*)
我有一个嵌套的SQL查询,它显示了我不能理解的结果。该查询通过PARTNER_USER表联接合作伙伴表和用户表。合作伙伴基本上是用户的集合,此查询的目标是找出第20个用户何时向ID为34的合作伙伴注册:
select p.partner_id id,
u.created_on launch_date
from user u join partner_user pu
using (user_id) join partner p
using (partner_id)
where p.partner_id = 34
and u.user_id =
(s
我有以下数据库:
以下查询从amount字段为NULL的订单中计算出总金额,其结果是将产品价格与相应的购买数量相乘:
SELECT SUM(i.qtde * p.preco_unitario) FROM Produtos p
INNER JOIN ItensPedido i ON i.id_produto = p.id_produto
INNER JOIN Pedidos pd ON pd.id_pedido = i.id_pedido
WHERE pd.vlr_total IS NULL
GROUP BY i.id_pedido);
我可以使用以下查询更新P
我试着为每一家公司计算问题和答案的数量,但我想在一个查询中计算它们。
因此,问题在于: table (问句)与tvrtka (公司) pitanje.tvrtka_id=tvrtka.tvrtka_id链接,表答案(odgovor)与试题表odgovor.pitanje_id = pitanje.pitanje_id链接。
我尝试过类似的方法,并得到了一些错误的结果(我分别计算了问题和答案以供测试)。
SELECT tvrtka.naziv,
(SELECT COUNT(*) FROM pitanje WHERE tvrtka.tvrtka_id = pitanje.tvrtka_id) AS
我有一些疑问,它的文本很大。
SELECT id FROM my_table WHERE name IN ('name1','name2',...)
每个名字是大约100个字符。
这张表有10M行,
字段名已编入索引。
我注意到,超过某个阈值,比如说26K,性能下降了,查询速度慢了10倍。
例如:
25K名字花了0.27秒
26K名花了3.19秒
查询长度是否有任何限制(即sql文本本身)?还要别的吗?
需要将以下Oracle查询迁移到to,但出现以下错误:
ORDER子句在视图、内联函数、派生表、子查询和公共表表达式中无效,除非还指定了TOP、偏移量或FOR XML。
Oracle可以无错误地处理下面的代码。
取消订单一点帮助都没有。
SELECT CREATIONDATE, TITLE, SUM(myindex) over (ORDER BY CREATIONDATE ROWS UNBOUNDED PRECEDING) AS cumula
FROM (
SELECT CREATIONDATE, TITLE, 1 as myindex
FROM CONTENT
WHERE CONTENT
我知道这个错误
每个组按表达式必须至少包含一个不是外部引用的列。
我将日期插入到临时表中,错误按查询位于以下组(仅在某些排序规则上)
insert into @Temp(Name, ID)
select
USR.Name,
ISNULL((SELECT SUM(BCR.QUANTITY)
FROM Rate BCR
WHERE BCR.RateID = USR.RateID
GROUP BY USR.RateID), 0) AS TotalQu
我正在努力学习SQL,并且很难理解EXISTS语句。我偶然发现这句关于“存在”的话,却不明白:
使用操作符,您的子查询可以返回零行、一行或多行,条件只是检查子查询是否返回任何行。如果您查看子查询的select子句,您将看到它由单个文字(1)组成;因为包含的查询中的条件只需要知道返回了多少行,那么子查询返回的实际数据就无关紧要了。
我不明白的是,外部查询如何知道子查询正在检查的是哪一行?例如:
SELECT *
FROM suppliers
WHERE EXISTS (select *
from orders
whe
mysql子查询中的结果顺序是否影响实际查询的顺序?我试过了,但没有取得真正的结果,因为有时看起来是这样,有时却没有。
例:
SELECT name FROM people WHERE pid IN (SELECT mid FROM member ORDER BY mdate)
在这种情况下,"order“-clause会影响结果的顺序吗?
谢谢。
我在一个简单的连接中遇到了问题:
SELECT *
FROM worker wo
WHERE EXISTS (
SELECT wp.id_working_place
FROM working_place wp
JOIN working_place_worker wpw ON ( wp.id_working_place = wpw.id_working_place
AND wpw.id_worker = wo.id_worker)
)
我犯的错误是ORA-00904: "WO"."ID_WORKER": not vali
我需要来自Server 2008表的数据,其序列号(行号)与顺序相反(desc)。
我的表名是ProductDetails。
我使用这个查询
WITH Sum_Ctl (TOt) as
(
select count(*)+1
from ProductDetails
where ProductDetails.UserId = 38
)
SELECT
Tot - ROW_NUMBER() OVER (ORDER BY PrdID asc) AS SNO,
*
FROM
ProductDetails, Sum_Ctl
WHERE
问题是如何找到内部查询返回的行总数,但仍然使用内部查询重新调整的集合(不重复同一查询两次)。
我有一个疑问:
SELECT a1.name as name
FROM
(
SELECT b1.id as id
FROM b1 JOIN b2 JOIN b3 ...
WHERE b1.x = ... AND ...
) as ids
JOIN a1 ON a1.id = ids.id
JOIN a2 ON a2.id = ids.id AND ...
JOIN a3 ON a3.id = ids.id AND ...
WHERE a1.name = 'apple
SELECT odate, SUM (amt)
FROM Orders a
GROUP BY odate
HAVING SUM (amt) > ( SELECT 2000.00 + MAX (amt)
FROM Orders b
WHERE a.odate = b.odate );
没有WHERE的子查询本身返回MAX(amt),它是一个值--在本例中是9891.88,我们如何在单个值上应用WHERE?
我对BOL的说法感到困惑:
“不能为被插入、更新或删除操作修改的表指定READUNCOMMITTED和NOLOCK。Server查询优化器忽略适用于update或delete语句的目标表的READUNCOMMITTED和NOLOCK提示。
例如,如果我写
--script 1)
UPDATE Test SET Txt=(Select Txt from TEST WITH(NOLOCK) where ID=1)
WHERE ID=1
它在没有错误(或警告)的情况下运行,并且可能相当于
--script 2)
set transaction isolation level SERIALIZA
我使用的是Oracle10,但问这个问题的最好方法是举个例子。
select *
from t1, t2
where t1.id = t2.id
and t1.otherID = (select max(otherID)
from t2
where id = THE ID FROM THE OUTER QUERY T1
)
我想你知道我想说什么了吧。我需要在子查询中引用t1,以便将其连接到t2的最大值。
我需要知道如何创建这样的查询。
“来自外部查
我尝试从一个表中返回7个事件,从今天的日期开始,并按日期顺序排列:
SELECT ID
FROM table
where ID in (select ID from table
where DATEFIELD >= trunc(sysdate)
order by DATEFIELD ASC)
and rownum <= 7
如果我删除“order by”,它将返回ID,并且查询可以正常工作,但它的顺序不正确。感谢任何帮助,因为我似乎不能找出我做错了什么!
(编辑)为了澄清,我之前使用了这个,返回的订单确实是错误的:
select ID
from TABLE
where DATEF
我的桌子是这样的:
表1(学生)
表2(结果)
我希望从表1 students中选择所有在results表中有4个结果的学生。我尝试了这个查询,但没有成功:
SELECT *
FROM students
WHERE gender = 'm'
AND (SELECT COUNT( result ) AS count
FROM results
INNER JOIN students ON results.stuID = students.stuID
WHERE result !=0
) =4
ORDER BY rank ASC
今天看到一个同事在运行一个问题,我无法解释为什么或者为什么它没有失败。该查询(摘要):
UPDATE table1
SET columnToUpdate = 1
WHERE recordID IN (
SELECT recordID FROM table2 WHERE table2column IN ( *list of values*))
问题是,他把只出现在recordID中的table1误认为是personID,而personID在表1中是PK,在表2中是FK。
我原以为查询不会运行,因为子subselect无法解析(实际上,如果您单独运行子subselect,它将失败)。相反,运行上面
每次创建新列并希望在WHERE语句中使用该列时,是否需要对其进行子查询?
例如。我想创建一个名为“滞后”的新列,该列使用login_date列,并将其延迟4天。是否有一种方法可以立即按该列筛选表,还是总是需要创建一个子查询来使用新列“滞后”的位置。
这将是理想的:
SELECT id,
login_date,
LAG(login_date, 4) OVER (PARTITION BY id ORDER BY login_date) as Lag
FROM table
WHERE DATEDIFF(Lag, login_date) = 4
这就是我试图避免的方式:
SELECT sub.*
FR
我编写了以下查询并运行:
select * from processed p
inner join data d on d.dataId = p.dataid
where assetid in (select a.assetid from dbo.file f
inner join asset a on a.assetName = f.fileNumber
inner join configMapping c on c.assetId = a.assetid
WHERE p.id in
我必须使用SQL从WordPress表中获取一些数据,但是我没有机会嵌套这两个查询。提前感谢! 查询1:此查询获取按语言过滤的wp_post (WPML插件)的所有数据。返回类似于wp_posts表的内容 SELECT *
FROM wp_posts
JOIN wp_icl_translations t ON wp_posts.ID = t.element_id
AND t.element_type = CONCAT('post_', wp_posts.post_type)
WHERE wp_posts.post_type = 'post'
A
我今天遇到了一个奇怪的查询,我认为它会失败,但它以一种意想不到的方式成功了。这是它的最小复制。
表和数据:
CREATE TABLE Employee(ID int, Name varchar(max))
CREATE TABLE Engineer(ID int, Title varchar(max))
GO
INSERT INTO Employee(ID, Name) VALUES (1, 'Bobby')
INSERT INTO Employee(ID, Name) VALUES (2, 'Sue')
INSERT INTO Engineer(ID, Ti
我正在Oracle中创建一个SQL命令来更新"LOADDATE“的值,使其等同于我的表中的"UPDATEDATE”的值。我这里的代码是有效的:
BEGIN
UPDATE LOAD_SETTINGS
SET
LOADDATE = (
SELECT UPDATEDATE
FROM LOAD_SETTINGS
WHERE
MODEL = 'A001'
AND OBJECT = 'A'
)
WHERE
MO
我想创建一个查询,其中我从INV表中获取所有帖子,其中INNUM在INVS表中出现超过2次。这是我现在的查询,但它失败了,出现了典型的“缺少右括号”错误。但是当我孤立地运行EXISTS查询时,它可以工作... SELECT WO.WONUM, WO.DESCRIPTION, INV.INNUM, INV.STATUSDATE
FROM INV LEFT OUTER JOIN WO ON INV.WOID = WO.WOID
WHERE EXISTS (
SELECT COUNT(*) FROM INVS WHERE INVS.INNUM = INV.INNUM
我想查询用户信息,如(first_name,last_name,pic,uid),然后加入评论数据,如文本,时间。
首先,这是我的评论问题
SELECT text, time, username, fromid FROM comment WHERE post_id ='123456'
然后,我需要将这个查询与user连接起来
SELECT first_name, last_name FROM user WHERE **uid='fromid'**
来自user表的uid可以与来自注释表的fromid连接。
我该怎么做呢?
谢谢
我有一个MySQL查询(UBU10.04,Innodb,核心i7,16 Ubu内存,固态硬盘,MySQL参数优化):
SELECT
COUNT(DISTINCT subscriberid)
FROM
em_link_data
WHERE
linkid in (SELECT l.id FROM em_link l WHERE l.campaignid = '2900' AND l.link != 'open')
表em_link_data大约有700万行,em_link有几千行。此查询大约需要18秒才能完成。但是,如果我替换子查询的结果并执行以下操作:
SELEC
这个练习来自W3Schools。
给定两个表( Employees和Jobs ),查找姓名(first_name、last_name)、薪资等于其职务级别的最低工资的员工的薪资。
所提出的解决办法是:
SELECT
first_name, last_name, salary
FROM
employees
WHERE
employees.salary = (SELECT min_salary
FROM jobs
WHERE employees.job_id =
有没有办法批量更新多个表?我找到了使用单个查询批量更新以及使用单个查询更新多个表的解决方案。然后再寻找一个综合的解决方案。
例句:目前是这样做的。
UPDATE a, b, c
SET a.address = "$address", b.address = "$address", c.address = "$address"
WHERE a.id = b.a_id AND a.id = c.a_id AND a.id = 123
UPDATE a, b, c
SET a.address = "$address", b.ad
我有一个类似这样的查询:
SELECT 'FY2000' AS FY, COUNT(DISTINCT SGBSTDN_PIDM) AS CHEM_MAJORS
FROM SATURN.SGBSTDN, SATURN.SFRSTCR
WHERE SGBSTDN_PIDM = SFRSTCR_PIDM
AND SGBSTDN_TERM_CODE_EFF = (SELECT MAX(SGBSTDN_TERM_CODE_EFF)
FROM SATURN.SGBSTDN
如果编写了以下查询,我会得到错误invalid B.WO_NO。如果查询是在没有WHERE子句的情况下编写的,则work_order_coding_tab中的所有金额值都是已更新的。但我不需要更新表中的所有数据。但是,我只需要更新行select by,即内部select。任何建议,我可以尝试。请帮帮忙
UPDATE work_order_coding_tab A
A.amount = (SELECT B.sales_price_amount
FROM work_order_coding B
WHERE A.WO
我的问题是如何遍历一个表并从另一个表中提取信息。
我有一个包含470条记录的table -X:
A B C
111 12 18
121 21 29
127 37 101
我想写下下面的查询:
create or replace view NEW as
For j = 1-3
Select * from Y
where imei = X.A(j) and id > X.B(j) and id < X.C(j)
抱歉,我是一名matlab程序员,所以我使用了上面的语法来解释我想要什么。我如何在MySql中做到这一点
我有两个具有相似字段的表,但是当我在WHERE子句中执行SELECT子查询时,查询失败。
SELECT foo
FROM bar
WHERE fizz IN (SELECT fizz FROM fuzz)
我从亚马逊网络服务中删除了error.log,但错误的程度是HIVE无法识别SELECT。
我需要如何重构这个查询?
谢谢。
因此,我编写了一个简单的查询,为property_usage表中只显示一次的属性提供ID #,以及相关使用类型的代码。由于我不想包含一个列,该列显示每个属性ID在property_usage表中显示的次数,所以我编写了两个子查询,以获得只显示一次的所有属性ID的列表。然后,我使用这些子查询的结果(属性in的单个列)筛选出那些在表中显示不止一次的属性。
以下是查询:
select pu.property_id, pu.usage_type_id
from acres_final_40.property_usage pu
where pu.property_id not in
(selec
考虑使用表模式来存储颜色和十六进制代码
CREATE TABLE `tbl_master_colors` (
`color_id` int(11) NOT NULL,
`color_name` varchar(100) NOT NULL,
`color_hex` varchar(6) NOT NULL,
`color_hex_hashed` varchar(7) NOT NULL,
`color_r` int(11) NOT NULL,
`color_g` int(11) NOT NULL,
`color_b` int(11) NOT NULL,
`status
我有一个名为book的表,其中包含以下数据:
id | description | section
1 | textbook 1 | 1
2 | textbook 2 | 1
3 | textbook 3 | 1
我使用以下查询来选择id 2以及第1节中的下一行和前一行:
SELECT id FROM books where id IN
(2,
(SELECT id FROM books WHERE id < 2 LIMIT 1),
(SELECT id FROM books WHERE id > 2 LIMIT 1)
)
AND section = 1
当我添加
在执行虚拟表中索引列的查询和语句时,是否仍然可以在SQLite中享受FTS3 3/4的好处?示例:
SELECT title, ID, creationDate FROM documents WHERE type=1 AND status=2 AND searchableFields MATCHES '"john doe"';
或
SELECT title, ID, creationDate FROM documents WHERE type=1 AND status=2 AND searchableFields CONTAINS 'john doe
我有一个非常快速的查询(大约0.2862秒):
SELECT title, godina,
(SELECT zanrovi.zanr
FROM zanrovi
WHERE filmovi.zanr=zanrovi.id
) AS zanr,
imdb, ocjena, sd, hd, fhd, 3d ,
(SELECT COUNT(film)
FROM statistika
WHERE film=filmovi.id
) AS skinuto
FROM fil