当我运行此查询时
SELECT CustomerId FROM Stocks.dbo.Suppliers
它给了我这个错误。列名'CustomerId‘无效。这个错误是有效的,因为在供应商表中没有列CustomerId;但是当我在子查询中使用相同的查询时,它不会给出任何错误。
SELECT *
FROM SomeOtherDb.dbo.Customer
WHERE CustomerId In( SELECT CustomerId
FROM Stocks.dbo.Suppliers)
在这里,我期望出现相同的错误"Inv
我有两张桌子。Transaction(ID,TERMINALID)和终端(ID,TERMINALID,EXPORT_DATE)。目标是从事务表中获取每一行的最新数据,从终端表中重新计算。雪花被用作后端。
我有一个SQL查询:
SELECT tr.ID,
(SELECT te.ID
FROM "Terminal" te
WHERE te.TERMINALID = tr.TERMINALID
ORDER BY te.EXPORT_DATE DESC
LIMIT 1)
FROM "Transacti
(底部有更新)
我正在尝试获取表中名为"VersionHistory“的最新条目,由于id设置为自动增量,所以我试图获取最大ID。尽量避免按降序对整个表进行排序,并尽可能减少表增长时对此查询所需的计算,而且这个表可能会变得非常快。
class VersionHistoryQuery extends BaseVersionHistoryQuery {
public function getLatestVersion() {
return $this
->withColumn('MAX(version_history.id)
在下表People中
id name
1 James
2 Yun
3 Ethan
如果我想要找到最大id,我可以运行以下查询
select max(id) id from People;
结果是
id
3
如果我想对除最后一行之外的所有行的id加1,我尝试这样做:
select if(id=max(id), id, id+1) id, name from People
令人惊讶的是,我得到了
为什么max()不能像以前那样工作?为什么只有一行(看起来只有第一行)返回?我想我知道如何解决这个问题,如下所示:
select if(id=lastID, id, id+1) id,
我不是SQL专家,所以我试图理解为什么两个查询的执行时间有很大的不同。
common_stats是一个大型表(300万行)。我只是想弄明白为什么表现有这么大的差异。
下面的查询大约需要15秒:
select distinct cs.basesalary_id
from common_stats AS cs
LEFT JOIN basesalary AS b ON b.id = cs.basesalary_id
WHERE (b.employee_id= 100 AND cs.amount > 0 AND cs.pay_id is null );
这个查询需要~.1秒:
select di
下面是没有子查询的主查询:
SELECT * FROM
mytable AS idx
WHERE
idx.ID IN (1,2,3)
AND idx.P1 = 'galleries';
这个表的索引是id_path (ID,P1)
此时一切都很好,使用了索引,检查了3行,返回了2行。如果没有索引,就必须检查9行。
现在,如果我用一个返回完全相同的it集的子查询替换it列表,主查询仍然返回正确的行,但是它停止使用索引,并检查9行,就好像索引根本不存在一样。
SELECT * FROM
mytable AS idx
WHERE
id
我有以下SQL:
IF EXISTS
(
SELECT
1
FROM
SomeTable T1
WHERE
SomeField = 1
AND SomeOtherField = 1
AND NOT EXISTS(SELECT 1 FROM SomeOtherTable T2 WHERE T2.KeyField = T1.KeyField)
)
RAISERROR ('Blech.', 16, 1)
SomeTable表大约有200,000行,而SomeOtherTable表有大约
运行本地Mysql实例。在我的数据库中,我拼写错了一个列名(stret to street)。所以我写了一个查询:
alter table address change Stret Street VARCHAR(20);
此表刚创建,并且不包含任何记录。我知道有很多不同的线程在问为什么花了这么长时间,但是他们所有的表都有100,000+行。我一无所有!为什么查询耗时1小时13分15.76秒?
我知道我可以删除并重新创建表,我只是好奇为什么这个“简单”的更改会花这么长时间?
编辑:找出原因。我正在调试一个使用这个数据库的程序,并在中间停止(没有终止程序)以更改列名。一旦我停止了tomcat,一
我正在运行一个DB2/SQL -完全连接查询。
PROC SQL;
CONNECT TO db2 AS db1 (USER=&dpwuscod. PASSWORD=&dpwpwcod. DATABASE=&dpwdbnam.);
CREATE TABLE result3 AS
SELECT *
FROM CONNECTION to db2
(
SELECT count(* ) as NbrCount
FROM a
所以我有一个这样的查询:
SELECT tablea.name, tablea.views from tablea inner
join tableb on (tablea.id = tableb.id and tablea.balance > 0)
order by tablea.views asc limit 1
但是,问题是当我运行它时,它运行得非常慢(4+秒)。有趣的是,当删除“order”子句时,在保持限制1的同时,它将在0.005秒内运行(大约)。
更有趣的是:当我不加入到tableb中时,即:
SELECT tablea.name, tablea.views from
我已经学了好几个小时了,但都没成功。
我有一个产品表,我需要从畅销书/顶级/最受欢迎的产品列表(例如100件)中随机抽取N种产品。
使用原始查询,这似乎很简单。首先,我们采取100高价值的产品,然后我们再订购,最后采取其中3。
select * from (select * from `products` order by `valoration` desc limit 100) as products order by RAND() limit 3;
这可以使用DB:table来完成,但我需要执行相同的查询,而不是使用原始查询。这是因为我的产品模型有许多自定义方法,DB:table返回一个s
我正试图实现一件简单的事情,但对我来说,它变得越来越复杂了,我希望你们能帮助我,我正在使用左连接查询,并想要创建一个条件来使条件1条件匹配到第一个表和第二个表上,如果匹配值的记录存在或者不重要,但是ID的第一个条件应该存在,这里是我想要写的示例查询。
SELECT team_request.*, (SELECT user_meta.meta_value FROM user_meta WHERE user_meta.meta_title = 'user_image') AS userImage FROM team_request INNER JOIN user_meta ON u
我发现在某些情况下,像这样的查询
select
usertable.userid,
(select top 1 name from nametable where userid = usertable.userid) as name
from usertable
where active = 1
在SS2008R2中完成所需的时间比等效的join查询长一个数量级
select
usertable.userid,
nametable.name
from usertable
left join nametable on nametable.userid = us
我试图用mysql编写以下查询:
SELECT *
FROM eon.merged_monthly_energy_data
where consumption>0
and ((SELECT TIMESTAMPDIFF(YEAR, mmed.start_date, CURDATE()) AS difference
FROM merged_monthly_energy_data mmed) <1) ;
然而,我得到以下错误:-
错误代码: 1242。子查询返回多于1行
我不知道为什么返回多个结果的子查询会在以下方面产生问题:
我只是使用顶级语法从表中删除重复的值。但它会返回错误代码。
查询:
DELETE top(SELECT COUNT(*)-1 FROM tests WHERE test_name='WALLET_01' AND product_id=25)FROM tests WHERE test_name='WALLET_01' And product_id=25;
错误代码:
错误代码: 1064您在SQL语法中有一个错误;
在查询返回int值下面单独执行,作为1:
SELECT COUNT(*)-1 FROM tests WHERE test_name='
我想查询用户信息,如(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 inno_bd表、t主键id和三个字段上的多个btree索引。字段A、B、C分别属于int、int、Date:
问题在于:有一个存档的t_archive表,如果它已经过时了,我可以使用它将记录从t移动到t_archive。要移动记录,我使用两个查询:
INSERT INTO t_archive SELECT * FROM t WHERE A = 1 AND B = 2 AND C = 3
DELETE FROM t WHERE A = 1 AND B = 2 AND C = 3
(正如您注意到的,满足条件it为4和5)在上面提到的查询中,我尝试用it:
我正在使用Hibernate,我想执行以下查询:
SELECT s.executionTime, g.date, s.name
FROM SimulationStatsGroup g
LEFT JOIN SimulationStats s ON s.group_id = g.id
WHERE g.name = 'general'
ORDER BY g.date DESC
LIMIT 30
在这个查询中,我必须使用表,而一个SimulationStatsGroup包含几个SimulationStats。
但是,使用HQL,LIMIT会生成一个错误,因为hibernate不支持它。
如何在SYBASE中提取小日期记录
我正在使用以下查询;
select count(id) as total,
convert(date, my_dte, 101) as new_dte
from my_table
where convert(date, my_dte, 101) between '05/01/2014' and '05/31/2014'
group by convert(date, my_dte, 101)
order by convert(date, my_dte, 101)
这是这个查询的输出
**total
我有两个桌子A和B。
表A包含名称,表B包含所选名称。
现在,我想使用greendao对这些表执行以下查询,请告诉我是否有可能,如果没有,请告诉我是否有其他选择(可能是原始查询)。
select *
from A inner join B
on A.nameid = B.nameid
另外,表A列:id, nameid, name
和表B列:id, nameid, name, rating
我有以下查询
SELECT news.*, count(*) AS common_tags
FROM news
JOIN news_news_tag ON news.id = news_news_tag.news_id
WHERE news_tag_id IN
(SELECT news_tag_id FROM news_news_tag WHERE news_id = 2 )
AND news.id != 2 GROUP BY news.id ORDER BY common_tags DESC
我想要实现的是得到水化的新闻对象与提供的新闻id的公共标签数量排序。News和Tag与n
当需要排序集的最后一行时,通常会创建派生表并重新排序。例如,若要返回具有自动递增id的表的最后3个元素
SELECT * FROM (
SELECT * FROM table ORDER BY id DESC LIMIT 3
) t ORDER BY t.id
因为LIMIT也可以有偏移量,所以如果我们预先知道这个查询的行数(比如10行),就可以得到相同的结果:
SELECT * FROM table ORDER BY id LIMIT 3 OFFSET 7
是否可以运行一个子查询来count(*)一个表,并使用这个数字动态地构建一个LIMIT?
SELECT * FROM table