YQL RSS feednormalizer中的限制和处理错误

问题描述

| 我正在使用YQL使用以下查询一次检索多个RSS @R_502_5646@(频道):
SELECT * FROM @R_502_5646@normalizer
WHERE output=\"RSS_2.0\"
AND url in (\"http://RSS.cnn.com/RSS/edition.RSS\",\"http://bad.url.com/nothing\",\"http://RSS.cnn.com/RSS/edition_space.RSS\")
所以我实际上有2个问题: 如何将每个供稿限制为一定数量的物品? (例如,我想从每个渠道中获取前三项) 请注意,第二个URL无效(不是真实RSS的URL)。在这种情况下,YQL结果返回2个有效通道以及一个错误,但是没有指示哪个URL有效和哪个URL失败。 换句话说-对于每个结果供稿,都没有指示它从哪个URL到达的。 关于如何识别每个渠道有什么想法? 谢谢     

解决方法

        第一个问题: 我想到的第一个想法是使用
query.multi
SELECT rss.channel.item FROM query.multi WHERE queries=\"
   SELECT channel.item FROM feednormalizer WHERE output=\'rss_2.0\' AND url = \'http://rss.cnn.com/rss/edition.rss\' LIMIT 3; 
   SELECT channel.item FROM feednormalizer WHERE output=\'rss_2.0\' AND url = \'http://rss.cnn.com/rss/edition_space.rss\' LIMIT 3;\"
不是最优雅的方法,但它可以工作。 第二个问题: 我认为不可能。由于YQL的
WHERE x IN ()...
语法实际上不是SQL连接,因此无法选择投影中内部子查询的部分,这取决于您的情况。 如果有人在这个问题上证明我做错了,我会很高兴,因为我本人需要几次,并且总是必须以编程的方式来解决它:)