Как сделать этот запрос? - PullRequest
0 голосов
/ 16 мая 2010

У меня есть таблица MySQL с этими столбцами:

  • ID (автоинкремент)
  • ID_BOOK (int)
  • ЦЕНА (двойной)
  • ДАННЫЕ (дата)

Я знаю два ID_BOOK значения, например, 1 и 2.

QUERY:

Мне нужно извлечь все ЦЕНА (из ID_BOOK = 1 и ID_BOOK = 2), где DATA одинаково !

Пример таблицы:

1  1  10.00  2010-05-16

2  1  11.00  2010-05-15

3  1  12.00  2010-05-14

4  2  18.00  2010-05-16

5  2  11.50  2010-05-15

Пример результата:

1  1  10.00  2010-05-16

4  2  18.00  2010-05-16

2  1  11.00  2010-05-15 

5  2  11.50  2010-05-15

ID_BOOK = 2 не имеет 2010-05-14, поэтому я прыгаю.

Спасибо большое!

Ответы [ 3 ]

2 голосов
/ 16 мая 2010

Я догадался, как вы хотите получить результаты, и вам нужно заменить myTable на фактическое имя вашей таблицы.

SELECT *
FROM myTable
WHERE DATA IN
(
    SELECT
        DATA
    FROM myTable
    GROUP BY
        DATA
    HAVING COUNT(*) > 1
)
ORDER BY
    DATA DESC,
    ID_BOOK,
    ID
0 голосов
/ 16 мая 2010

Это даст вам немного другой формат результатов, но это может быть полезно:

Select 
t1.id as t1_id, t1.id_book as t1_id_book, t1.price as t1_price, t1.data as t1_data,
t2.id as t2_id, t2.id_book as t2_id_book, t2.price as t2_price, t2.data as t2_data
from table t1
inner join table t2 on t1.data = t2.data
and t1.id_book = 1
and t2.id_book = 2

Вы получите:

1  1  10.00  2010-05-16  4  2  18.00  2010-05-16
2  1  11.00  2010-05-15  5  2  11.50  2010-05-15
0 голосов
/ 16 мая 2010
select PURCHASE_DATE, PRICE from table group by PURCHASE_DATE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...