Использование двух таблиц в PHP и MySQL для отображения одного результата цикла

#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
  

вот и все