Решение уже предоставлено в другом ответе. Просто пытаюсь объяснить, почему ваше решение не работает.
Допустим, у нас есть 2 таблицы t1
(столбцы id
и v1
) и t2
(столбцы id
и v2
).
Теперь, когда мы запустим:
q) cols@'`t1`t2
вывод будет список списка:
(`id`v1;`id`v2)
Этот список содержит 2 записи, где каждая запись является списком.
Теперь вы пытаетесь найти столбец в этом списке.
q) `id in (`id`v1;`id`v2) /output 0b
И так как этот список не имеет id
в качестве записи, он возвращает 0b
.
Если вы выполните поиск `id`v1
, который представляет собой список, вы получите 1b
, соответствующий первой записи.
q) `id`v1 in (`id`v1;`id`v2) / output 1b
Здесь вы хотите искать имя столбца в каждой записи этого списка. Так что единственное, чего вам не хватает в вашем выражении, - это оба. Это будет работать:
q) `id in'cols@'`t1`t2 / output 11b
В вашем случае это будет:
q) `ticker in ' cols@'`tradeTable`table2