我有我需要的是依赖于主查询结果的子查询的WHERE子句的问题,否则我的结果是错误的,查询时间过长/不executeable。MySQL查询,(从子查询访问mainquery)
,我需要此查询来创建,我需要一个搜索服务器视图的情况下支持,我不能这个脚本动态拆分成两个查询,也没有处理它的问题。
的问题时用下面的查询:
SELECT `s`.`id` AS `seminar_id`, (SUM(`sub`.`seminar_rate`)/COUNT(`sub`.`seminar_id`)) AS `total_rate`
FROM
(
SELECT (SUM(value)/COUNT(*)) AS `seminar_rate` , `r`.`seminar_id`
FROM `rating` r
INNER JOIN `rating_item` ri ON `r`.`id` = `ri`.`rating_id`
WHERE `r`.`seminar_id` = `s`.`id`/* <- Here is my problem, this is inacessible */
GROUP BY `r`.`seminar_id`
) AS sub,
`seminar` s
INNER JOIN `date` d
ON `s`.`id` = `d`.`seminar_id`
INNER JOIN `date_unit` du
ON `d`.`id` = `du`.`date_id`
LEFT JOIN `seminar_subject` su
ON `s`.`id` = `su`.`seminar_id`
LEFT JOIN `subject` suj
ON `su`.`subject_id` = `suj`.`id`
INNER JOIN `user` u
ON `s`.`user_id` = `u`.`id`
INNER JOIN `company` c
ON `u`.`company_id` = `c`.`id`
GROUP BY `du`.`date_id`, `sub`.`seminar_id`
这个查询应该计算的总速率对每个讲座的收视率。 但是我的评分存储在我的“评分”表中,应该进行实时处理。 (旁注:如果你想知道所有的连接:这个查询有更多的SELECT'ed字段,我只是删除它们,因为它们不需要解决问题,并使查询看起来不那么复杂[我知道它仍然是>。>] ...)
原因是我希望这个结果可以通过我的搜索引擎排序,这取决于用户排序参数 ,这就是为什么我在这个查询中需要它。
问题本身是很明显的: ERROR 1054(42S22):未知列在“where子句”
子选择犯规了解主要查询的结果“s.id”,是有一个解决方案绕过这个?
可能有人给我一个提示,以得到这个工作?
在此先感谢。
我想看看这个工作! - 谁是第一个?鸡还是鸡蛋? - (你的问题) –