У меня есть таблица со следующей структурой:
(table_name, column_name)
и для каждой строки в этой таблице мне нужно запросить имя столбца в имени таблицы и выполнить COUNT(column_name) GROUP BY column_name
значений в нем.
В настоящее время я делаю
SELECT * FROM this table
/*and then*/ foreach row: do another query with:
SELECT column_name, COUNT(column_name) GROUP BY column_name
Есть ли способ сделать это в одном запросе?
Что-то вроде
SELECT column_name, COUNT(column_name)
GROUP BY column_name
FOREACH(SELECT table_name, column_name FROM my_initial_table)
Я знаю, что последний запрос недействителен, это всего лишь пример того, чего я хочу достичь, если это возможно.
LE:
Таблица, в которой указано, где искать, содержит 2 столбца varchar
Ex:
|++++++++++++++++++++++++++++++++
| table_name | column_name |
|+++++++++++++++++++++++++++++++|
| logsa | foo |
|===============================|
| logsa | bar |
|===============================|
| testx | baz |
|===============================|
Это говорит мне, что теперь я тоже смотрю в столбцы foo и bar таблицы logsa и столбец baz таблицы testx
Каждый столбец в каждой таблице имеет тип данных VARCHAR, и мне просто нужно сосчитать те, которые совпадают. вот так я и делал
SELECT column_name, COUNT(column_name)
GROUP BY column_name