2015-04-15 3 views
2

у меня есть две таблицы в MySQL:запросов от 2 таблиц в MYSQL

Таблица 1

Week From   Until 
1 2015-04-01 2015-04-07 
2 2015-04-08 2015-04-14 
3 2015-04-15 2015-04-21 
4 2015-04-22 2015-04-28 

Таблица 2

Input_Date  Code 
2015-04-10  123 
2015-04-22  456 
2015-04-25  123 
2015-04-26  123 
  1. Я использовал этот запрос, чтобы выбрать текущую неделю на основе текущей даты:

    SELECTОТ table_1 ГДЕ (СЕЙЧАС() МЕЖДУ From И Until)

  2. мне нужно выбрать «код» и считать его из таблицы 2, где «код» = 123 и «Input_Date» соответствует текущей «Недели».

* Если текущая дата 2015-04-23, то "Неделя" будет = 4

Результат будет выглядеть так:

Week Code Count 
4  123  2 

ответ

3

пытаясь угадать

SELECT t1.Week, t2.Code, COUNT(*) 
FROM table_1 t1 
LEFT JOIN table_2 t2 
ON t2.Input_Date BETWEEN t1.From AND t1.Until 
WHERE (NOW() BETWEEN t1.From AND t1.Until) 
AND t2.Code = 123 

http://sqlfiddle.com/#!9/3d2a6/16

+0

Это работает. Благодаря! – Seph1603

0

Альтернативный способ сделать то же самое без LEFT JOIN

SELECT a.week, b.code, count(a.week) 
FROM table_1 a, table_2 b 
WHERE (b.input_date BETWEEN a.from AND a.until) 
AND (NOW() BETWEEN a.From AND a.Until) 
AND b.code = 123 
Смежные вопросы