#php #mysql
#php #mysql
Вопрос:
Хорошо, здесь немного забавный вопрос. У меня есть две таблицы: —
- Живая таблица
- Архивируемый
Данные следующие: —
Table: LiveTable Table: ArchiveTable
| ID | NAME | | ID | NAME |
------------------ ------------------
| 1 | Test One | | 4 | Test Four |
------------------ ------------------
| 2 | Test Two | | 5 | Test Five |
------------------ ------------------
| 3 | Test Three| | 6 | Test Six |
То, что я хочу сделать, это объединить их в одну таблицу только для целей запроса. Не как структура базы данных.
По сути, когда я выполняю цикл PHP, я хочу, чтобы результаты работали следующим образом: —
Merged Results
| ID | NAME |
------------------
| 1 | Test One |
------------------
| 2 | Test Two |
------------------
| 3 | Test Three|
------------------
| 4 | Test Four |
------------------
| 5 | Test Five |
------------------
| 6 | Test Six |
Как бы я это сделал? Также есть ли способ сделать это с помощью Doctrine?
Комментарии:
1. выведите первый массив, а не второй массив, или используйте array_merge()
2. Создайте представление, используя эти две таблицы;
Ответ №1:
Вы можете использовать SQL-запрос с UNION
:
SELECT ID, Name
FROM LiveTable
UNION ALL
SELECT ID, Name
FROM ArchiveTable
Примечание: UNION ALL
будут сохранены дубликаты. Если вы хотите удалить повторяющиеся записи, используйте UNION
.
Ответ №2:
Вы могли бы использовать UNION
:
SELECT id, name FROM tbl1
UNION ALL
SELECT id, name FROM tbl2
Ответ №3:
Создайте представление БД, используя вышеуказанные две таблицы
CREATE VIEW view_name AS SELECT
id, name FROM tbl1
UNION
id, name FROM tbl2
Затем вы можете запросить свое представление
Ответ №4:
вы можете использовать sql-запрос multi table select
Select * from LiveTable,ArchiveTable
вот и все