Как мне вызвать информацию из более чем одной базы данных и отобразить ее на одной странице? - PullRequest
0 голосов
/ 28 сентября 2019

У меня есть информация для моего сайта, разбитого на несколько баз данных по категориям.Например, мои базы данных: животные, сертификаты и крафт.Все базы данных имеют одинаковые имена столбцов с информацией, которую мне нужно отобразить.Это столбцы Name, Img, Item_Code и Length.Все таблицы также объединяются в таблицу с именем Styles и Style_ID.

. Как я могу отображать информацию из всех этих таблиц в алфавитном порядке на одной странице, фактически не создавая «Мастер»база данных?

Я не знаю, если это имеет значение, но я использую phpMyAdmin и сайт PHP.

1 Ответ

1 голос
/ 28 сентября 2019

Вы можете использовать запрос UNION для извлечения всех данных из каждой таблицы, добавив дополнительный столбец для указания категории, если это необходимо:

(SELECT  Name, Img, `Code`, Length, 'Animal' AS Category FROM Animals)
UNION
(SELECT  Name, Img, `Code`, Length, 'Certificate' AS Category FROM Certificates)
UNION
(SELECT  Name, Img, `Code`, Length, 'Crafting' AS Category FROM Crafting)
ORDER BY Name

Если вы также хотите включить информацию из Styles, используйте приведенный выше запрос как производную таблицу (добавив столбец Style_ID) и JOIN, который к Styles (я предположил, что соответствующий столбец в Styles равен ID):

SELECT *
FROM ((SELECT  Name, Img, `Code`, Length, 'Animal' AS Category, Style_ID FROM Animals)
     UNION
     (SELECT  Name, Img, `Code`, Length, 'Certificate', Style_ID FROM Certificates)
     UNION
     (SELECT  Name, Img, `Code`, Length, 'Crafting', Style_ID FROM Crafting)) d
JOIN Styles s ON s.ID = d.Style_ID
ORDER BY Name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...