Получать строки из нескольких таблиц как один результат?

У меня 2 стола. В таблице 1 есть поля A, B, C, D, а в таблице 2 есть поля A, B. Поля A и B обеих таблиц имеют одинаковый тип записи. Я хотел бы получить записи из обеих таблиц полей A и B как единый результат.

Есть ли запрос или функция в PHP + MySql?

Спасибо...

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
1 293
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Я предполагаю, что 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.

Спасибо за полезный ответ. Если бы я мог, я бы принял все три ответа ... :)

Ei Maung 07.10.2008 04:54

Решение 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 |
+------+---------+

Другие вопросы по теме