前几天看别人的代码中看到在字段中使用select子查询的方法,第一次见这种写法,然后研究了一下,记录下来 大概的形式是这样的: select a .*,(select b.another_field from b where a.id=b.aid) another_field from a where 1 limit 10; 下面还是以实例来说明,要不然不好理解,新建两张表,一张是商品表,另外一张是商品的评论表 商品表: CREATE TABLE `product` ( `id` int(11)
update字段中带select UPDATE tb_report_type A INNER JOIN (SELECT LEVEL_CODE FROM tb_report_type WHERE id = 'ED894BE001CE4F47A2916287A491B4E1') BSET A.LEVEL_CODE = CONCAT(B.LEVEL_CODE,'-',A.id) WHERE A.PARENT_ID = 'ED894BE001CE4F47A2916287A491B4E1'
标量子查询不仅可以用在SELECT 语句的列表中,它还可以用在WHERE 子句中,而且实际应用中子查询很多的时候都是用在WHERE子句中的. 先来看一个简单的例子,我们要检索喜欢“Story”的读者主键列表,那么这可以使用连接来完成,不过这里我们将使用子查询来完成. 使用子查询的实现思路也比使用连接简单.首先肯定要到T_Category 表中查找FName等于“Story”的记录的FId字段值: SELECT FId FROM T_Category WHERE FName=" Story &qu
记一次pgsql的查询优化 前言 这是一个子查询的场景,对于这个查询我们不能避免子查询,下面是我一次具体的优化过程. 优化策略 1.拆分子查询,将需要的数据提前在cte中查询出来 2.连表查询,直接去查询对应cte里面的内容 WITH RECURSIVE nodes AS ( SELECT t.* FROM document_directories t INNER JOIN document_permissions p ON p.resource_id = t.id AND p.enterpri
转载自:https://blog.csdn.net/headingalong/article/details/77744755 错误sql delete from company_info where id NOT in (SELECT company_info_ID FROM USER); 因为null的原因,导致出现子查询的结果为空. 正确的写法是 -- 清除重复的不可用的公司信息 delete from company_info where id NOT in (SELECT compan
UPDATE user SET pwd='123' WHERE id in ( SELECT id from user WHERE username = 'zx' ); 报错[Err] 1093 - You can't specify target table 'user' for update in FROM clause 我们可以写内连接达到同样的效果 : UPDATE USER aINNER JOIN USER b ON b.username = 'zx'AND a.id = b.i
if OBJECT_ID('tempdb..##t2') is not null drop table ##t2;create table ##t2( a int, b int, c datetime, d varchar(100), e varchar(100), f int, g int);select * from ##t2; update ##t2set f = t3.f,g = t3.gFROM ##t2,(select f.NID,count(s.NID) skuCount,sum(
子查询作为数据源 子查询生成的结果集包含行.列数据,因而非常适合将它与表一起包含在from子句的子查询里.例: SELECT d.dept_id, d.name, e_cnt.how_many num_employees FROM department d INNER JOIN (SELECT dept_id, COUNT(*) how_many FROM employee GROUP BY dept_id) e_cnt ON d.dept_id = e_cnt.dept_id; 数据加工 除了