Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вывод инфы с ДБ которая не присутствует вгругой ДБ 
V
    Опции темы
Spiker
Дата 20.4.2015, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 25.5.2005
Где: Спортзал

Репутация: -2
Всего: -2



У меня есть два стола в базе данных с листом заказов и с рекомендации от клиентов

Пример полей в столе "заказы" (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"

выводит нужный результат

Это сообщение отредактировал(а) Spiker - 20.4.2015, 17:28


--------------------
Даваите жить дружно! (Леопольд.) :shy67:
PM MAIL MSN   Вверх
baldina
Дата 21.4.2015, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 26
Всего: 101



одним запросом лучше
можно и вот таким
Код

select * from enquiry where id not in (select distinct enquiry_id from testimonial)

для быстроты индексы полезны

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0918 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.