подзапросы mysql help - PullRequest
       24

подзапросы mysql help

0 голосов
/ 09 августа 2011

У меня есть 3 таблицы в базе данных MySql:

  1. Пользователь;
  2. Компания, имеющая поле даты с именем data;
  3. Объект, который имеет idUser и idCompany.

Мне нужно получить Компании, у которых есть определенная дата в поле даты Компании, и которые соответствуют следующему правилу: В таблице объектов не должно быть записей, в которых есть idP = xx и idI = (идентификатор компании, у которой есть конкретная дата значения yy-mm-dd)

Как мне написать этот запрос?

Ответы [ 2 ]

1 голос
/ 09 августа 2011
SELECT * FROM Company WHERE data = '2011-08-09' AND
Company.id NOT IN
(SELECT Object.idI FROM Object WHERE Object.idI = Company.id AND Object.idP = 'XX')

Но я должен сказать, что переименование ваших столбцов и таблиц должно быть сделано заново. Это может быть намного более значимым.

Вы должны создать индексы для Object.idI и Object.idP, чтобы он работал быстрее.

1 голос
/ 09 августа 2011
SELECT * FROM Company
  LEFT JOIN Object ON( Object.idP = xx OR Object.idl = Company.id )
  WHERE Company.date = somedate AND Object.idP IS NULL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...