BigQuery Standard SQL ВЫБРАТЬ строки, ГДЕ поле содержит слова из другого поля таблицы - PullRequest
0 голосов
/ 11 января 2020

У меня есть 2 таблицы в BigQuery. Таблица VIDEOS содержит названия видео и теги. Таблица CREATORS содержит информацию о создателях видео. Поле VIDEOS.tags содержит строки в кавычках, разделенные запятыми.

Мне нужно выбрать все видео, которые были отмечены именами в таблице CREATORS, и результаты выглядят так:

Title 1, Creator 1
Title 2, Creator 2
Title 3, Creator 2
Title 4, Creator 3
Title 5, Creator 3
...

Но что У меня ниже не возвращается никаких результатов в BigQuery.

SELECT
    B.name AS Title,
    C.creator_name AS Creator
FROM `project.database.VIDEOS` AS B, `project.database.CREATORS` AS C
WHERE B.tags LIKE CONCAT('%"', C.creator_name ,'"%')

Ответы [ 2 ]

2 голосов
/ 11 января 2020

В таких случаях это обычно из-за различий в случаях - попробуйте

WHERE LOWER(B.tags) LIKE CONCAT('%"', LOWER(C.creator_name) ,'"%')
0 голосов
/ 11 января 2020

Я думаю, что вы хотите наоборот: тег должен выглядеть как имя. Дайте мне знать

SELECT
    B.name AS Title,
    C.creator_name AS Creator
FROM `project.database.VIDEOS` AS B, `project.database.CREATORS` AS C
WHERE C.creator_name LIKE CONCAT('%"', B.tags ,'"%')
...