Можно ли получить пересечение или разность двух наборов результатов в YQL? - PullRequest
3 голосов
/ 20 января 2012

Мне нужно создать модуль Twitter полностью на стороне клиента.

Я намеревался использовать Twitter API для данных и YQL для передачи Одинаковая политика происхождения , а также для более высокого ограничения скорости.Я использовал эту комбинацию раньше с успехом.

Одна вещь, которую мне нужно сделать, это получить список твитов с хэштегом и от конечного набора пользователей.

Получает твиты с хэш-тегом #stackoverflow пользователями alexdickson и lizardbill.

Мне также нужно получить другой набор твитов.

Получает все твиты с хэш-тегом #stackoverflow.

Теперь мне нужно отобразить вторую коллекцию, но исключая результаты из первого набора.Это будет diff результатов, таких как PHP array_diff().

. Для полноты мне также может понадобиться что-то достичь, получив пересечение двух результатовто есть список твитов, которые появляются в обоих наборах результатов.Это похоже на PHP array_intersect().

Уже давно я использую SQL и не могу придумать, как этого добиться в YQL.

Ответы [ 2 ]

2 голосов
/ 23 января 2012

YQL поддерживает подвыборы (подзапросы).См. Соединение таблиц с подвыборками .Подвыборы используются с оператором IN для фильтрации результатов внешнего выбора.

Для вашего конкретного запроса также существует twitter.search Community OpenТаблица данных доступна для спасения вас от создания URL-адресов Twitter и использования таблицы json.

select *
from twitter.search
where q="#stackoverflow" 
and id not in (
    select id 
    from twitter.search 
    where q="#stackoverflow from:alexdickson, OR from:lizardbill"
)

( Попробуйте этот запрос в консоли YQL .)

2 голосов
/ 20 января 2012

Похоже, я наконец-то понял.YQL поддерживает подзапросы.

SELECT results 
FROM   json 
WHERE  url = "http://search.twitter.com/search.json?q=%23stackoverflow" 
       AND results.id NOT IN (SELECT results.id 
                              FROM   json 
                              WHERE  url = 
"http://search.twitter.com/search.json?q=%23stackoverflow%20from%3aalexdickson,%20OR%20from%3alizardbill" 
) 

Консоль YQL .

...