[英]SELECT table with LEFT JOIN in where clause result
Below query return : #1054 - Unknown column 'word.id' in 'where clause' 在查询下面返回:#1054-“ where子句”中的未知列“ word.id”
select * from word,(
SELECT sqrt(variance(ifnull(re_freq,0)))/avg(ifnull(re_freq,0)) cv
FROM pre_cat
left join (select * from goal where wordid= word.id)g on pre_cat.id= g.catid) gg
How can I fix it? 我该如何解决?
below query return correct result but just for one record! 下面的查询返回正确的结果,但仅用于一条记录!
SELECT avg(ifnull(re_freq,0)) , variance(ifnull(re_freq,0)),sqrt(variance(ifnull(re_freq,0)))/avg(ifnull(re_freq,0))
FROM pre_cat
left join (select * from goal where wordid= 9690)g on pre_cat.id= g.catid
and crrect result of this query is: 0.500000000375 Upldated schema SQL fiddle http://sqlfiddle.com/#!2/de6c0/2 该查询的正确结果是:0.500000000375升级的架构SQL小提琴http://sqlfiddle.com/#!2/de6c0/2
How cant I do it for All result? 我如何才能做到全部结果? Please help me! 请帮我!
below stored procedure work correctly, but takes too long! 下面的存储过程可以正常工作,但是需要太长时间!
BEGIN
DECLARE wo_id INT;
DECLARE num INT;
DECLARE i INT;
DECLARE res DOUBLE;
SELECT COUNT(*) FROM word INTO num;
SET i=0;
WHILE i<num DO
SELECT sqrt(variance(ifnull(re_freq,0)))/avg(ifnull(re_freq,0)) FROM pre_cat left join (select * from goal where wordid= i )g on pre_cat.id= g.catid INTO res;
update word set cv=res where id=i;
SET i = i + 1;
END WHILE;
END
your join syntax is wrong. 您的连接语法错误。 as Jens said we cannot refer the outer table into inner sql. 正如Jens所说,我们不能将外部表引用到内部sql中。 you can select like the following 您可以选择如下所示
select * from word,(
SELECT sqrt(variance(ifnull(re_freq,0)))/avg(ifnull(re_freq,0)) cv
FROM pre_cat
left join (select goal.* from goal join word on goal.wordid= word.id)g on pre_cat.id= g.catid) gg
select * from word join
(SELECT sqrt(variance(ifnull(re_freq,0)))/avg(ifnull(re_freq,0)) cv,
g.wordid
FROM pre_cat
left join goal g on pre_cat.id= g.catid
group by g.catid) gg on gg.wordid= word.id
Just join the word table with the subquery by wordid 只需通过wordid将单词表与子查询连接
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.