Немного разъяснений поможет. Если все 16 таблиц имеют одинаковые поля и вы хотите, чтобы они были в непрерывном списке, вы можете использовать UNION, как было предложено выше. С другой стороны, если есть только несколько полей, которые соответствуют, и вы хотите сравнить значения для каждой таблицы бок о бок, вы захотите использовать объединения и предоставить псевдонимы с именами таблиц, как это также было предложено выше.
Однако, глядя на фрагмент кода, который вы предоставили, я собираюсь предположить, что вы либо создаете какую-то хранимую процедуру, либо реализуете SQL на каком-то другом языке. Если это так, то как о загрузке ваших имен таблиц в массив и используя цикл для построения запроса, например, следующий код псевдо-:
tableList = ["table1", "table2"...]
fieldnames = ["field1", "field2"...]
query = "SELECT "
for i = 0 to count(tableList):
for j = 0 to count(fieldnames):
query = query + tablelist[i] + "." + fieldnames[j] + ", "
j++
i++
query = query + "FROM "
for i = 0 to count(tableList):
query = query + tableList[i] + ", "
i++
query = query + "WHERE " ...
и так далее. Большая часть этого зависит от того, что именно вы хотите сделать, как часто вы хотите это сделать и как часто переменные (например, таблицы или поля, которые вы используете) будут меняться.
Вы должны опубликовать структуры таблиц с данными образца и ожидаемыми результатами. Как есть, трудно ответить или понять. Ваш запрос производит «декартовое произведение» результатов и предполагает, что в одной из этих таблиц существует только одно поле «id», не более одного (что не имеет большого смысла) ... – sgeddes
Будьте осторожны с попыткой запрос, поскольку это перекрестное соединение между всеми 16 таблицами, возвращающее декартово произведение каждого набора таблиц. Таким образом, только без предложения WHERE, общие записи являются результатом подсчета записей каждой таблицы (которые могут достигать миллионов): t1 X t2 X t3 ... – Parfait
thanks Parfait, Mr sgeddes, эти 16 таблиц связаны с клиентом «id» как внешним ключом; Поэтому я хочу провести исследование в этих 16 таблицах, чтобы найти всю информацию, относящуюся к этому клиенту .... Как я могу сказать, что клиент имеет более одного результата в таблице, ........ .... Например, клиент является заказчиком, и у нас есть таблица, называемая командами, поэтому у заказчика может быть несколько команд в таблице команд. – Joseph