mysql - MySQL中的相关子查询无法在主要的stmt中包含“列”
问题描述
使用以下查询,包括相关的子查询,我希望能够从主查询中找到 PhotoCount (这是子查询)> # 即 > 1 或 > 5 的记录
我试过做
WHERE PhotoCount > # WHERE (SELECT COUNT(operatorID) FROM tbl_photos p WHERE p.operatorID = aoh.operatorID AND p.img_creator = 'Daniël E. Cronk') > #
但是,所有这些都会产生“未知列”错误
我尝试添加 @PhotoCount:= 然后执行 WHERE PhotoCount 但这不会产生任何结果。
SELECT af.frameID, af.msn AS afMSN, af.ln AS afLN, af.aircraft_type AS toestelA, af.aircraft_cat AS afAircraftCat, af.airframe_status, aoh.operatorID, aoh.aircraftframeID, aoh.msn, aoh.ln, aoh.lvmID, aoh.toestel, aoh.aircraft_cat, aoh.reg, aoh.delivered, aoh.delivery_comment, aoh.engines, aoh.configuration, aoh.fleet_number, aoh.aircraft_name, aoh.special_colors, aoh.comments, aoh.exit_date, aoh.last_updated, lvm.luchtvaartmaatschappijID AS lvmid, lvm.luchtvaartmaatschappij AS lvmnaam, lvm.sm_logo, (SELECT COUNT(operatorID) FROM tbl_photos p WHERE p.operatorID = aoh.operatorID AND p.img_creator = 'Daniël E. Cronk') AS PhotoCount
FROM tbl_aircraft_frame af
LEFT JOIN tbl_aircraft_operator_history aoh
ON af.msn = aoh.msn AND af.aircraft_cat = aoh.aircraft_cat
LEFT JOIN tbl_toestel t
ON af.aircraft_cat = t.toestelID
LEFT JOIN tbl_luchtvaartmaatschappij lvm
ON aoh.lvmID = lvm.luchtvaartmaatschappijID
解决方案
如果你想使用你需要使用的列SELECT
而HAVING
不是WHERE
SELECT
af.frameID,
af.msn AS afMSN,
af.ln AS afLN,
af.aircraft_type AS toestelA,
af.aircraft_cat AS afAircraftCat,
af.airframe_status,
aoh.operatorID,
aoh.aircraftframeID,
aoh.msn,
aoh.ln,
aoh.lvmID,
aoh.toestel,
aoh.aircraft_cat,
aoh.reg,
aoh.delivered,
aoh.delivery_comment,
aoh.engines,
aoh.configuration,
aoh.fleet_number,
aoh.aircraft_name,
aoh.special_colors,
aoh.comments,
aoh.exit_date,
aoh.last_updated,
lvm.luchtvaartmaatschappijID AS lvmid,
lvm.luchtvaartmaatschappij AS lvmnaam,
lvm.sm_logo,
(SELECT
COUNT(operatorID)
FROM
tbl_photos p
WHERE
p.operatorID = aoh.operatorID
AND p.img_creator = 'Daniël E. Cronk') AS PhotoCount
FROM
tbl_aircraft_frame af
LEFT JOIN
tbl_aircraft_operator_history aoh ON af.msn = aoh.msn
AND af.aircraft_cat = aoh.aircraft_cat
LEFT JOIN
tbl_toestel t ON af.aircraft_cat = t.toestelID
LEFT JOIN
tbl_luchtvaartmaatschappij lvm ON aoh.lvmID = lvm.luchtvaartmaatschappijID
HAVING PhotoCount > 10
推荐阅读
- javascript - JavaScript 模式 getElementsByClassName
- javascript - 使用 req.data 在 restify 中将值从中间件传递到控制器不起作用?
- angular - 初始化前无法访问“RoutePageModule”
- c - 通过管道(C)写入外部程序
- javascript - PhpStorm:在 ctp 文件中编写 PHP、HTML 和 JS
- javascript - Adonisjs:如何在清晰的模型创建中捕获异常?
- javascript - 对代理使用 `with` 语句是一种不好的做法吗?
- python-3.x - 将字典列表拆分为多列
- blender - 没有可见的关键帧,但对象仍在移动
- javascript - 您可以将变量除以/乘以另一个数字四舍五入到最接近的百位吗?