





Я предполагаю, что MySql делает это:
выберите a, b из таблицы1, где your_criteria = test_value союз выберите a, b из таблицы 2, где your_criteria = test_value
В SQL есть предложение объединения, которое делает то, что вы хотите:
select a,b from table1
where <where-clause>
union all select a,b from table2
where <where-clause>
или, если вам нужны все поля (пробелы для table2):
select a,b,c,d from table1
where <where-clause>
union all select a,b,' ' as c,' ' as d from table2
where <where-clause>
Пробелы во втором запросе, возможно, потребуется расширить, чтобы они соответствовали размерам полей для c и d.
Решение Union подтверждено в версии MySQL Server: 5.0.51a-3ubuntu5.1 (Ubuntu)
create database foo;
create table bill(a int, b varchar(10));
create table ted(a int, b varchar(10), c datetime, d boolean);
insert into bill values (10, 'foo'), (20, 'bar');
insert into ted values (5, 'splot', now(), true), (10, 'splodge', now(), false);
select a,b from bill where a<=10 union select a,b from ted where a<=10;
+------+---------+
| a | b |
+------+---------+
| 10 | foo |
| 5 | splot |
| 10 | splodge |
+------+---------+
Спасибо за полезный ответ. Если бы я мог, я бы принял все три ответа ... :)