2013-09-27 3 views
0

Я новичок в MySQL и пытаюсь построить запрос MySQL, который делает следующее:Уплотненного MySQL Query

Таблицы A: метки времени | id_num

Таблица B: dept | first_id | second_id

  • Таблица A может содержать повторяющиеся id_nums, и результат должен возвращать только любой ID_NUM один раз, если дублирует присутствуют
  • В id_nums должны быть записаны в последнюю неделю
  • Я хочу, чтобы искать любой ID_NUM что то есть между first_id и second_id в таблице B, учитывая один конкретный отдел.

Вот что я пытался до сих пор без успеха:

SELECT DISTINCT FROM ID_NUM A WHERE timestamp> '2013-09-19 00:00:00' И ID_NUM МЕЖДУ (SELECT FROM first_idB ГДЕ dept = X) И (SELECT last_id ОТ B ГДЕ = Xdept)

Любые советы о том, как лучше всего выполнять этот вид операции? Спасибо заранее.

ответ

0

Если вы хотите связать столбцы в двух таблицах, обычно использовать JOIN:

SELECT distinct id_num 
FROM A 
JOIN B ON A.id_num < B.first_id AND B.second_id 
WHERE A.timestamp > '2013-09-19 00:00:00' 
AND B.dept = X