Синтаксис SQL НЕ ВХОДИТ для Google BigQuery

Руководство по синтаксису Google SQL можно найти здесь https://developers.google.com/bigquery/docs/query-reference, похоже, не касается использования терминологии НЕ В.

Я получаю ошибку

Query Failed
Error: Encountered "" at line 0, column 0. Was expecting one of:  

(а затем Google ничего не перечисляет после слов "один из")

когда мой запрос

SELECT ageinmonths,amountborrowed,borrowerrate,creationdate,creditgrade,
       debttoincomeratio,groupkey,key,lenderrate,listingkey,modifieddata,
       originationdate,prosperrating,status,term
FROM prosperloans1.loans2 as big,
     prosperloans1.dupelistingkeysinloans2 as small
WHERE big.listingkey NOT IN small.listingkey

таблица small имеет 14 строк. В таблице большой 57К строк.

Любые идеи? Не уверен, поддерживает ли Google SQL NOT IN.

Спасибо Шон


person user1558422    schedule 30.07.2012    source источник
comment
разве вам не нужны скобки, когда вы используете in или нет? например выберите * из двойного, где идентификатор не входит в (1, 2, 3)   -  person Uncle Iroh    schedule 31.07.2012
comment
казалось, что это сработало: ВЫБЕРИТЕ ageinmonths, amountborrowed, заемщика, даты создания, кредитного рейтинга, отношения долга к доходу, ключа группы, ключа, кредитора, ключа листинга, измененных данных, даты происхождения, процветания, статуса, срока ОТ prosperloans1.loans2 ГДЕ Ключ листинга НЕ ВХОДИТ (ВЫБЕРИТЕ ключ листинга из prosperloans1.dupelistingke )   -  person user1558422    schedule 31.07.2012


Ответы (1)


Полусоединения и антисоединения используют следующий синтаксис: SELECT field FROM table WHERE field [NOT] IN (SELECT other_field FROM other_table WHERE foo = 'bar')

Итак, ваш обновленный запрос с подзапросом является правильной версией.

person Jordan Tigani    schedule 30.07.2012
comment
Также может быть полезно запускать запросы, которые НЕ соответствуют спискам строк, например: SELECT word, COUNT (*) as word_count из publicdata: samples.shakespeare WHERE word NOT IN ('the', 'and', 'i' , 'to', 'of', 'a') ГРУППА ПО слову ORDER BY word_count DESC IGNORE CASE; - person Michael Manoochehri; 31.07.2012
comment
Я не был уверен, можно ли использовать WHERE field [NOT] IN (SELECT GROUP_CONCAT (other_field) FROM other_table) или WHERE field [NOT] IN (SELECT other_field FROM other_table) < / b>. Это помогло мне, но я не уверен, почему GROUP_CONCAT не работает. - person Steve Scherer; 04.11.2014
comment
Как вы используете GROUP_CONCAT? Это просто сгенерирует строковое значение, разделенное запятыми, с объединенными значениями группы. Ожидаете ли вы, что это будет соответствовать полю во внешнем запросе? GROUP_CONCAT может объединять результаты в произвольном порядке, что может быть причиной того, что вы не получите ожидаемого совпадения. - person Jordan Tigani; 04.11.2014