Я не база данных профессионально, но в настоящее время работает на одном запросе (PHP-> MySQL):MySQL эффективный ВЫБРАТЬ запрос
У меня есть 3 таблицы:
'Предметы': идентификатор, имя, ссылка
'ItemsToUsers': идентификатор, item_id, user_id
'Пользователи': идентификатор, электронная почта
Каждая доступность 'Item' представляется закономерные изменения, которые я проверить на лету некоторым алгоритмом.
Моя цель состоит в том, чтобы
1) выбрать все элементы и проверить на лету, если они доступны
2) Если товар есть в наличии, уведомить пользователей, которые следят за его по электронной почте. Для этого мне нужно выбрать пользователей из «ItemsToUsers», а затем получить их электронную почту из таблицы «Пользователи».
Я знаю, как это сделать прямолинейно, но я чувствую, что буду вдаваться в многие запросы. (индивидуальный SELECT для каждого пользователя ...)
Есть ли способ сделать это более эффективно: в одном запросе или путем изменения алгоритма? Спасибо за ваше время!
Давайте посмотрим макет из SELECT (ов), в котором вы нуждаетесь. Возможно, для подключения трех таблиц вам понадобится только один SELECT с JOINs. –
Используйте ['JOIN'] (http://dev.mysql.com/doc/refman/5.0/en/join.html) и не забудьте индексы в соединенных столбцах. –
Где находится ваша колонка "Доступность"? Я могу видеть только id, имя и ссылку для элемента. – MegaAppBear