标签: inner-query

Q(kdb):嵌套在哪里查询

有什么方法可以在子句Q中使用嵌套查询的结果where

我正在寻找类似SQL陈述的东西.

select from food where type_id in (
    select type_id from types where type_name = "fruit"
)
Run Code Online (Sandbox Code Playgroud)

sql where inner-query kdb

11
推荐指数
2
解决办法
5015
查看次数

SQL INNER QUERY在UPDATE查询中返回多个值

我有一个表要使用另一个表的记录进行更新,我这样做是为了将信息从一个系统(数据库)带到另一个系统.情景有点复杂,但我迫切需要帮助:-s

有3个表- component,scanstage_link

零件

component_id  stage_id
------------  --------
1              NULL
2              NULL
3              NULL
4              NULL
5              NULL
Run Code Online (Sandbox Code Playgroud)

扫描

scan_id  component_id  scanner_id           date_scanned
-------  ------------  ----------  -----------------------
 1         1           scanner_a    2012-01-01 07:25:15.125
 2         1           scanner_b    2012-01-02 08:14:05.456
 3         2           scanner_a    2012-01-01 12:05:45.465
 4         3           scanner_a    2012-01-01 19:45:12.536
 5         1           scanner_c    2012-01-03 23:33:54.243
 6         2           scanner_b    2012-01-02 11:59:12.545
Run Code Online (Sandbox Code Playgroud)

stage_link

stage_link_id  scanner_id  stage_id
    -------     ----------  ----------  
       1         scanner_a    1   
       2         scanner_b    1    
       3         scanner_c    2    
       4         scanner_d …
Run Code Online (Sandbox Code Playgroud)

sql sql-server inner-query sql-update

5
推荐指数
1
解决办法
3263
查看次数

使用update语句中的当前行

我要做的是以下内容:我有一个包含多位作者的表SingleAuthor.该表有时不止一次包含同一作者.我想要做的是更新表并添加作者特定的号码.例如:

sat_name - > sat_rowNumber
弗雷迪 - > 1
作者2 - > 2
弗雷迪 - > 1
AnotherOne - > 3

我已经有了查询给我这个结果:

SELECT ROW_NUMBER() OVER( ORDER BY sat_name),
sat_name
FROM SingleAuthor
GROUP BY sat_name

但问题是,我想在sat_rowNumber列中插入此数据.我带着这个问题来到这里:

UPDATE SingleAuthor SET sat_rowNumber = (   SELECT newTable.numb 
                                            FROM(
                                                SELECT ROW_NUMBER() OVER( ORDER BY sat_name) as numb, sat_name 
                                                FROM SingleAuthor  
                                                GROUP BY sat_name) AS newTable 
                                            WHERE newTable.sat_name =) -- the current row in the to be updated table
Run Code Online (Sandbox Code Playgroud)

我想要做的就是更新SingleAuthor表的 …

sql row-number inner-query sql-update

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

我们可以在mysql的子句中使用列名吗?

SELECT `e`.`id`, `e`.`title`, `e`.`description`, `e`.`event_time`,(SELECT GROUP_CONCAT( name SEPARATOR " | " ) 
FROM `ar_products` 
WHERE id IN **(e.products)** AS products FROM events e;
Run Code Online (Sandbox Code Playgroud)

我在事件表中列出了包含列名产品的逗号分隔产品ID.如果我使用值54,33,23 ..它显示正确的值,如产品列表[product1 | product2 | ..].

当我在IN CLAUSE中直接使用列名时,它无法正常工作.

mysql clause inner-query

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

SQL 性能:先过滤或先连接

我有三个表,即员工、部门和申诉。员工表有超过一百万条记录。我需要找到该员工的详细信息、他/她的部门以及他/她提出的申诉。

我可以想到以下两个查询来查找结果:

1、先过滤记录,只得到需要数据的员工的记录:

SELECT * FROM (SELECT * FROM Employees WHERE EmployeeID= @EmployeeID) Emp    
LEFT JOIN Department Dpt ON Emp.EmployeeID= Dpt.EmployeeID    
LEFT JOIN Grievance Grv ON Emp.EmployeeID= Grv.EmployeeID;
Run Code Online (Sandbox Code Playgroud)

2.先加入:

SELECT * FROM Employees Emp    
    LEFT JOIN Department Dpt ON Emp.EmployeeID= Dpt.EmployeeID    
    LEFT JOIN Grievance Grv ON Emp.EmployeeID= Grv.EmployeeID    
WHERE EmployeeID= @EmployeeID);
Run Code Online (Sandbox Code Playgroud)

如果我们考虑以 FROM>INNER JOIN>OUTER JOIN>WHERE>....SELECT 开头的 SQL 逻辑处理顺序,第一个查询应该执行得更好/更快,因为内部查询中只有一条记录并且将被连接与进一步的表。然而,在执行这两个查询时,我没有发现任何性能差异,并且两个查询花费的时间几乎相同。

您能检查一下并让我知道我的想法错在哪里吗?

sql sql-server join left-join inner-query

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

标签 统计

inner-query ×5

sql ×4

sql-server ×2

sql-update ×2

clause ×1

join ×1

kdb ×1

left-join ×1

mysql ×1

row-number ×1

where ×1