Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
Karamba666
0 / 0 / 0
Регистрация: 22.10.2016
Сообщений: 9
#1

Вывод данных сразу из нескольких таблиц БД - PHP БД/MySQL

22.10.2016, 13:13. Просмотров 443. Ответов 12
Метки нет (Все метки)

У меня на сайте имеются разделы. Их около 7 (Анекдоты, картинки, загадки и тд.)
Таблицы под каждый раздел немного отличаются друг от друга, немного)

Я решил на главной странице сделать так, чтобы выводились последние материалы из ВСЕХ 7-ми таблиц.

Подскажите, как лучше быть?
1. Создать 1 таблицу, и впихнуть туда 7 мелких? Чтобы была каша? Но зато для вывода потребовалась бы 1 несложный запрос?
2. Либо же оставить эти 7 таблиц по отдельности, и как-то одним запросом выводить материалы сразу из 7 таблиц?

Если выбирать второй вариант, то вот как я соединяю таблицы:
MySQL
1
mysql_query("SELECT id FROM joke UNION SELECT id FROM zagadki");

Вроде работает, но мне сказали что лучше избегать JOIN-ы, а UNION это походу тоже самое что и джоин?

Возможно в моём случае джоин не так страшен, так как нет никакой связи между строками первой таблицы и второй в виде tb1.id = tb2.user_id

Кто что может сказать? Как мне лучше поступить? И второй вариант будет ли ложить БД, если нужно селектить 7 таблиц? Либо же всё запихать в 1 таблицу, и делать 1 селект запрос без джоинов?
http://www.cyberforum.ru/php-database/thread1390476.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2016, 13:13
Я подобрал для вас темы с готовыми решениями и ответами на вопрос MySQL Вывод данных сразу из нескольких таблиц БД (PHP БД):

Вывод данных из нескольких таблиц
Подскажите как вывести данные из нескольких таблиц. У меня есть 4 таблицы. Они...

Запрос на вывод данных из нескольких таблиц
Помогите, пожалуйста. Пытаюсь вывести запрос на вывод данных из 4 талиц Вот...

MySQL и PHP вывод данных из нескольких таблиц
есть 3 таблицы. база называется phptable klass, ushitel, predmet. из...

Добавление данных сразу в 5 таблиц
Добпый день, хотел спросить как можно создать пользователя и внести данные в 3...

Вывод из нескольких таблиц
Здравствуйте, у меня есть таблица users. Вот структура: users -...

12
miketomlin
Заблокирован
22.10.2016, 15:32 #2
Самое главное, чтобы кол-во полей и их типы в результирующей выборке совпадали. Если никак, то делайте семь запросов. В любом случае такую главную лучше кэшировать на сервере.
0
Karamba666
0 / 0 / 0
Регистрация: 22.10.2016
Сообщений: 9
22.10.2016, 16:18  [ТС] #3
miketomlin, а кэшировать на сервере это как?)
0
miketomlin
Заблокирован
22.10.2016, 16:23 #4
Сохранять сгенерированный код страницы в файле или в общей памяти. Реальный запрос к БД (и обновление кэша) делать раз в 5 мин., например, а все прочее время читать из кэша.
0
Karamba666
0 / 0 / 0
Регистрация: 22.10.2016
Сообщений: 9
22.10.2016, 18:09  [ТС] #5
miketomlin, я тоже думал делать так. типо если прошло времени меньше часа, то запрос к БД не делать. Иначе сделать запрос и обновить в кеше время последнего селекта базы... - но я не особо хочу использовать кеш, так как в дальнейшем обновлять базу придётся намного чаще
0
Para bellum
Эксперт PHP
3937 / 2923 / 922
Регистрация: 06.01.2011
Сообщений: 8,560
22.10.2016, 18:25 #6
Цитата Сообщение от Karamba666 Посмотреть сообщение
Вроде работает, но мне сказали что лучше избегать JOIN-ы
Кто Вам такое сказал?
0
Karamba666
0 / 0 / 0
Регистрация: 22.10.2016
Сообщений: 9
22.10.2016, 18:28  [ТС] #7
Para bellum, ну с кем не говорю, все это говорят)
Ну а вообще лучше 1 смешанную таблицу делать на все разделы? или 7 таблиц под каждый раздел?
0
miketomlin
Заблокирован
22.10.2016, 18:58 #8
Все – это видимо те же, кто сказали, что «UNION это походу тоже самое что и джоин». Или это вы сами сделали такой интересный вывод?

Цитата Сообщение от Karamba666 Посмотреть сообщение
Ну а вообще лучше 1 смешанную таблицу делать на все разделы? или 7 таблиц под каждый раздел?
Зависит от схожести сущностей, инфа о кот. хранится в таблицах.

Добавлено через 1 минуту
Если вы нигде не выводите их вперемешку, то скорее всего лучше в отдельных таблицах.
1
Para bellum
Эксперт PHP
3937 / 2923 / 922
Регистрация: 06.01.2011
Сообщений: 8,560
22.10.2016, 19:50 #9
Цитата Сообщение от Karamba666 Посмотреть сообщение
ну с кем не говорю, все это говорят
Смешно получилось, с ошибкой. Вы с ними не говорите, а они всё про JOIN'ы твердят. Если что -- тут "ни" надо писать.
Как они аргументируют свои свои слова?
0
Karamba666
0 / 0 / 0
Регистрация: 22.10.2016
Сообщений: 9
22.10.2016, 20:32  [ТС] #10
Ну а вообще, нужно 1 табблицу под каждый раздел? или смешать всё в 1 таблицу?)
0
BearBaloo
41 / 41 / 16
Регистрация: 04.10.2016
Сообщений: 154
Завершенные тесты: 1
22.10.2016, 21:01 #11
Я в своей практике, уже 3 раза прибегал к обьединению всех таблиц в одну, даже если там будет 100 полей, всеравно выборка проходит быстрей, и удобней, если выбирать не через *
0
miketomlin
Заблокирован
22.10.2016, 21:35 #12
Быстрей по сравнению с чем? Если вам нужно вывести одни «Анекдоты», то лучше их выводить из таблицы «Анекдоты». Как выше написал, имеет смысл делать в одной таблице, если у вас в общем списке идет все вперемешку. Например, у нас есть сайт-сток с ресурсами для Web-мастера (фоны, шрифты и т.п.), так там все в одной таблице с разделением ресурсов по типам, потому что на главной размещается общий список, а уже фильтрация по типам – на внутренних. Другой пример – магазин – там на главной присутствуют ленты по осн. типам товаров (примерно то, что хочет сделать ТС) – тоже одна таблица, т.к. по сути описанные в ней сущности одного типа – товары. У ТСа немного др. история, поэтому тут нужно хорошенько подумать.
0
Para bellum
Эксперт PHP
3937 / 2923 / 922
Регистрация: 06.01.2011
Сообщений: 8,560
23.10.2016, 14:05 #13
Karamba666, а насколько таблицы вообще различаются? Может достаточно одной сущности (соответственно и одной таблицы) -- "Материал"?
0
23.10.2016, 14:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.10.2016, 14:05
Привет! Вот еще темы с решениями:

Вывод из нескольких таблиц
Искал ответ по теме, но не нашел. Вернее нашел, но все же что то не то. Может...

Вывод нескольких таблиц
Даже не знаю, как объяснить... Вопрос такой можно ли выводить таблицы из...

Вывод значений из нескольких таблиц
Привет всем. Есть талица с задачами(zads) в ней есть поля где id_tips, и мне...

Вывод информации MySQL из нескольких таблиц
Добрый день! 3 день только изучаю PHP и MySQL Задача такая Есть 2 таблицы: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru