【发布时间】:2021-11-20 17:00:01
【问题描述】:
我知道在 ClickHouse 中,我们必须使用带有 ON conditionals 的相等运算符。有什么建议可以解决我们必须使用 LIKE 运算符的情况,同样with MySQL 做了什么?
类似:
SELECT *
FROM TABLE a
JOIN TABLE b ON b.column LIKE CONCAT('%', a.column ,'%')
只是为了测试,我还尝试使用类似于first example of the JOIN documentation 的第二个条件:
SELECT course_id, usage_key , display_name
FROM video_events LEFT JOIN video_info
ON video_events.course_id = video_info.course_key
AND startsWith(video_info.display_name, 'Choro');
但我得到了错误:
Code: 403. DB::Exception: Received from localhost:9000. DB::Exception: Expected equality or inequality, got 'startsWith(display_name, 'Choro')': While processing startsWith(display_name, 'Choro').
即使我有一行上面的字符串:
e19b1e00a6b6 :) select course_id, usage_key , display_name from video_events JOIN video_info on video_events.course_id = video_info.course_key;
┌─────course_id───────────────────────────┬─usage_key─────────────────────────────────────────────────────────────────────────────────┬─display_name───────────────┐
│ course-v1:Introduction+CS001+2021autumn │ block-v1:Introduction+CS001+2021autumn+type@chapter+block@379e3fbc409744d9bdaffa309dd6e20d │ Section 1 │
│ course-v1:Introduction+CS001+2021autumn │ block-v1:Introduction+CS001+2021autumn+type@sequential+block@e09c8c6e1ec746d1a31b634438f42071 │ Videos │
│ course-v1:Introduction+CS001+2021autumn │ block-v1:Introduction+CS001+2021autumn+type@vertical+block@ac5ab25121044b1da4e9658e2d876a4b │ Classical │
│ course-v1:Introduction+CS001+2021autumn │ block-v1:Introduction+CS001+2021autumn+type@video+block@ec9ba45b09e74ee98858ee40e28e31e9 │ Debussy │
│ course-v1:Introduction+CS001+2021autumn │ block-v1:Introduction+CS001+2021autumn+type@vertical+block@7799a7acf46d46e0a3b1b1298d6e542b │ Brasileira │
│ course-v1:Introduction+CS001+2021autumn │ block-v1:Introduction+CS001+2021autumn+type@video+block@7b91e95676eb472d8f528d701c5fe929 │ Choro │
│ course-v1:Introduction+CS001+2021autumn │ block-v1:Introduction+CS001+2021autumn+type@sequential+block@a1586de2d0ca4b31ae24cf3146e09c96 │ Forum │
└─────────────────────────────────────┴───────────────────────────────────────────────────────────────────────────────────────────┴────────────────────────────┘
我想在表video_info 的上述字符串列usage_key 中从表video_id 的video_id 列中过滤一个ID(例如7799a7acf46d46e0a3b1b1298d6e542b)。
我也想过使用match 来搜索字符串,但我仍然不知道如何将它与 ON 条件一起使用。
【问题讨论】:
标签: join sql-like clickhouse