|
0 / 0 / 0
Регистрация: 15.02.2014
Сообщений: 5
|
||||||||||||||||||||||||||||||||||||||
Как лучше сделать выборку из двух таблиц?15.02.2014, 19:43. Показов 2378. Ответов 13
Метки нет (Все метки)
У меня две таблицы:
Надо сделать выборку: Фрукты
Делал выборку так:
0
|
||||||||||||||||||||||||||||||||||||||
| 15.02.2014, 19:43 | |
|
Ответы с готовыми решениями:
13
Как сделать выборку для двух таблиц? Как сделать linq выборку из двух таблиц в одну GridView? |
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
||||||
| 15.02.2014, 20:02 | ||||||
1
|
||||||
|
0 / 0 / 0
Регистрация: 15.02.2014
Сообщений: 5
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 15.02.2014, 21:00 [ТС] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Предупреждаю заранее: пишу в первый раз, так что извиняюсь за такое оформление вопроса
У меня две таблицы:
Надо сделать выборку: Фрукты
Делал выборку так:
Слишком много раз обращается к базе Решил сделать выборку с LEFT JOIN:
как из этого безобразия сделать списки? Ведь {Предметы}(Фрукты,Овощи и Мясо) повторяться будут. А м не надо чтобы один раз они вышли Как лучше? Или подскажите другой вариант Добавлено через 57 секунд Извиняюсь в начале нечаянно отправил не дописав Добавлено через 20 минут Добавлено через 30 минут ![]() кто может объяснить как тут действует присвоение?
0
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
|
|
| 15.02.2014, 21:47 | |
|
а тчо там не понятного?
$is_new_cat присваивается значение выражения $tmp != $row['map'] другой вопрос, зачем выбирать кучу раз имена категорий? лучше сделать два запроса, в первом выбрать категории , во втором выбрать содержимое. чем больше будет данных в категориях, тем правильней будет использовать два запроса ![]() а если учесть, что таблицы у вас одинаковы, то есть по сути по 2 поля, не считая связи, то можно вообще в одной таблице хранить всё
0
|
|
|
0 / 0 / 0
Регистрация: 15.02.2014
Сообщений: 5
|
|
| 15.02.2014, 22:01 [ТС] | |
|
Вот как раз только что дошёл до этого.
удивляюсь чего это в IF-е нету условий, только переменная. и понял что это в переменной стоит условие( $tmp != $row['map']) а так я в процессе обучения PHP. и стараюсь использовать разные варианты решения как я писал используя LEFT JOIN как раз таки и получается одна таблица, но там категории повторяються получается.
0
|
|
|
71 / 71 / 13
Регистрация: 01.09.2011
Сообщений: 379
|
||||||
| 16.02.2014, 02:17 | ||||||
|
Вообще-то это делается одним запросом
0
|
||||||
|
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
|
||
| 16.02.2014, 02:34 | ||
|
вот только не всегда 1 запрос будет работать оптимальней по ресурсам чем 2 с данной структурой
0
|
||
|
71 / 71 / 13
Регистрация: 01.09.2011
Сообщений: 379
|
|
| 16.02.2014, 02:46 | |
|
правильно давайте делать по запросу на категорию так "конечно" оптимальнее
0
|
|
|
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
|
|
| 16.02.2014, 02:48 | |
|
Уважаемый, если Вы не понимаете, о чём речь, не нужно пытаться язвить...
0
|
|
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
|
| 16.02.2014, 10:56 | |
|
zebulun, в данном случае, если объем данных большой, действительно будет оптимальнее использовать два запроса. Первым запросом извлекаются все категории, вторым запросом все товары. Если бы не было вывода заголовка категории, то лучше было бы обойтись одним запросом, здесь лучше несколькими, это я просто плохо подумал..
0
|
|
|
71 / 71 / 13
Регистрация: 01.09.2011
Сообщений: 379
|
|
| 16.02.2014, 13:41 | |
|
KOPOJI, А можно более конкретное условие, при котором, в данном случае два запроса лучше, или ссылочку...
Добавлено через 8 минут KOPOJI, Возможно, вы имели ввиду, если много именно категорий, тогда лучше два запроса? Если нет, тогда , если нетрудно, конкретизируйте, при каких объемах, в данном случае, лучше два запроса, или ссылочку...
0
|
|
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
||
| 16.02.2014, 13:43 | ||
|
0
|
||
|
71 / 71 / 13
Регистрация: 01.09.2011
Сообщений: 379
|
||||||
| 16.02.2014, 16:02 | ||||||
|
Не нашлось подходящей таблицы с 1000 записей на категорию, но вот нашлась такая
BEGIN: 1392551740.2562 END:1392551740.2731 END - BEGIN: 0.016964912414551 MY RESULT WITH 168 CATEGORIES AND 1990 ARTICLES = 0.016964912414551 BEGIN: 1392551740.2731 END2:1392551740.3101 END2 - BEGIN2: 0.036981105804443 YOUR RESULT WITH 168 CATEGORIES AND 1990 ARTICLES = 0.036981105804443
0
|
||||||
|
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
|
|
| 16.02.2014, 18:36 | |
|
ох... это что за код???
какой нафиг запрос в цикле? где о этом говориться? вам раз 100 написали что всего 2 запроса. а вы запросы в цикле шлёте... нормальный код, при такой таблице как у ТС, будет отличатся на на 1-5%, а у вас на 300%. а если не будет индексов, так код с 1 запросом изначально проиграет. да и зачем вы засекаете время всего скрипта? с пхп кодом? бд нужно разгружать чаще сем пхп. простой пример, сайт с 30к уников в день, нагрузка на проц от сайта 4-5% в пик нагрузка на бд до 100%. а вы тут замеряете пхп код... при 1 запросе, будет куча раз дублирование данных, + будет левое соединение, ибо нужно выбрать не толь ко те категории где есть вложения. трафик между субд и может вырасти в сотни раз из за 1 запроса вместо 2х выборка с лефт джоин тоже даст доп время. даже просто формирование ответа от субд и то будет дольше из за ненужных тысяч дублирований строк. а если это на удалённом хосте, как Вы сами написал? то от трафика ещё время доставки данных возрастёт. да и в пхп скрипте, если уж на то пошло, память сожрёт гораздо больше, если вернуть дублированный данные. а представьте что вы выбираете блоги с тегами, 1 запросом, у вас в тысячи раз будет больше памяти расходоваться с 1 запросом, и время тут тоже пострадает, когда на один маленький тег типа ajax будет скопирован весь блог.
0
|
|
| 16.02.2014, 18:36 | |
|
Помогаю со студенческими работами здесь
14
Как сделать выборку из двух таблиц БД Access и отобразить на форме Сделать выборку из двух таблиц
Как сделать выборку из двух таблиц, где отличаются по типу один из столбцов. Выдать надо все данные
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|