小编Tay*_*ing的帖子

MySQL在JOIN语法中将子查询相关联

我想通过指定innertable.id = outertable.id为内部查询提供WHERE条件.但是,MySQL(5.0.45)在'where子句'中报告"未知列'outertable.id'".这种查询是否可行?

内部查询使用GROUP BY将行旋转到列.这可以完全在外部查询中执行,但由于额外的连接可能会产生额外的开销.

或者,我可以在内部查询中省略WHERE条件,而是指定一个ON outertable.id = innerquery.id,但它会获取整个内部查询行集再次连接外部,这是低效的.

实际的SQL如下所示:

select t.ticketid, u.userid, t.fullname, u.loginapi_userid, t.email, tp.subject, tp.contents, a.PhoneNumber, a.Location, a.Extension, a.BusinessUnit, a.Department
from swtickets t
inner join swticketposts tp on t.ticketid = tp.ticketid
inner join swusers u on t.userid = u.userid
left join
  (
  select
  cfv.typeid,
  min(case cfv.customfieldid when 1 then cfv.fieldvalue end) as 'PhoneNumber',
  min(case cfv.customfieldid when 3 then cfv.fieldvalue end) as 'Location',
  min(case cfv.customfieldid when 5 then cfv.fieldvalue end) as 'Extension',
  min(case cfv.customfieldid when 8 then cfv.fieldvalue …
Run Code Online (Sandbox Code Playgroud)

mysql sql join subquery entity-attribute-value

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

Powershell v1:是否可以将switch语句的结果赋给变量?

是否可以将switch语句的结果赋给变量.

例如,而不是:

switch ($Extension) 
    { 
        doc {$Location = "C:\Users\username\Documents\"; break} 
        exe {$Location = "C:\Users\username\Downloads\"; break}
        default {$Location = "C:\Users\username\Desktop\"}
    }
Run Code Online (Sandbox Code Playgroud)

是否可以做类似的事情:

$Location = 
{
    switch ($Extension) 
    { 
        doc {"C:\Users\username\Documents\"; break} 
        exe {"C:\Users\username\Downloads\"; break}
        default {"C:\Users\username\Desktop\"}
    }
}
Run Code Online (Sandbox Code Playgroud)

尝试上述结果将$ location包含整个代码块作为String.

powershell switch-statement

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