2016-06-16 3 views
1

Я использую BigQuery для запроса двух наборов данных, которые разделяют схему:запрос несколько таблиц, которые используют одни и те же поля

SELECT 
    * 
FROM (
    SELECT 
    name as name, 
    REGEXP_EXTRACT_ALL(details, r"(value=\w+)") as regex 
    FROM 
    Dataset.table1, 
    Dataset.table2) 
WHERE 
    ARRAY_LENGTH(regex) > 0 

Но я получаю ошибку, что «название» поле является неоднозначным, что имеет смысл, так как Я не указываю ни одну из двух таблиц.

Есть ли способ запросить общие поля из таблиц 2+ одновременно?

+1

Может быть, добавить данные выборки и ожидаемые результаты? В настоящее время вы создаете декартовую продукцию между двумя таблицами. Вероятно, вы должны использовать 'join' или' union', но это сложно узнать без данных образца. – sgeddes

+1

Вы можете решить эту проблему, включив в нее псевдонимы, которые определяют, из какой таблицы вы выбираете столбец 'name'. –

+0

Важно, что вы можете отметить принятый ответ, используя отметку слева от опубликованного ответа ниже голосования. см. http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work#5235, почему это важно. Также важно проголосовать за ответ. Голосовые ответы полезны. Есть еще ... Вы можете проверить, что делать, когда кто-то отвечает на ваш вопрос - http://stackoverflow.com/help/someone-answers. –

ответ

2

Из-за использования ARRAY_LENGTH и REGEXP_EXTRACT_ALL похоже, что вы используете режим BigQuery Standard SQL.
В то же время вы по-прежнему используете понятие Legacy SQL от UNION ALL с использованием comma - что не относится к стандартным SQL!
Вы должны использовать явный СОЮЗ ВСЕ
Надеюсь, что это поможет!

0

Вы можете использовать tablename.columnname ниже используется запрос

SELECT 
    * 
FROM (
    SELECT 
    table1.name as name, 
    REGEXP_EXTRACT_ALL(details, r"(value=\w+)") as regex 
    FROM 
    Dataset.table1, 
    Dataset.table2) 
WHERE 
    ARRAY_LENGTH(regex) > 0 
+0

Разве это не приводит только к результатам таблицы table1? Это результат, который я вижу, когда пытаюсь –

Смежные вопросы