| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > вывод инфы с ДБ которая не присутствует вгругой ДБ |
| Автор: Spiker 20.4.2015, 16:15 |
| У меня есть два стола в базе данных с листом заказов и с рекомендации от клиентов Пример полей в столе "заказы" (enquiry) `id`, `completed` Пример полей в столе "рекомендации" (testimonial ) `id`, `enquiry_id` Мне надо найти все заказы у которых нету рекомендации, чтото наподобие SELECT * FROM `enquiry`, `testimonial` WHERE `enquiry`.`completed` = 1 AND `testimonial`.`enquiry_id` <> `enquiry`.`id` В данный момент я делаю следующее: 1. Нахожу все рекомендации (SELECT * FROM `testimonial`) 2. Результат с (1) поступает array в котором находятся enquiry_id ($exclude_id = array(12, 54, 22, 67)) 3. Нахожу все заказы у которых нету рекомендации (SELECT * FROM `enquiry` WHERE `completed` = 0 AND `id` NOT IN ($exclude_id)) Мне интересно узнать как можно было-бы это сделать быстрее? я использую CodeIgniter с Аctive Record. -------- "SELECT enquiry.* FROM `enquiry` LEFT JOIN `testimonial` ON `testimonial`.`enquiry_id` = `enquiry`.`id` WHERE testimonial.enquiry_id is NULL" выводит нужный результат |
| Автор: baldina 21.4.2015, 15:57 | ||
| одним запросом лучше можно и вот таким
для быстроты индексы полезны |