SQL-запрос в виде (динамического) значения столбца - PullRequest
0 голосов
/ 16 августа 2011

Рассмотрим следующий сценарий MySQL:

Table1:
id, date, value

Table2:
id, month, count

Таблица одна существует из множества строк, охватывающих более 1 года (даты) и различных значений

Можно ли как-нибудь использовать значения столбцов таблицы 2 'count' в качестве SQL-запросов?

Пример: строка 1 в таблице 2

ID | Month | Count
------------------------------------------------------------------------------
1  | 07    | SELECT COUNT(*) FROM Table1 WHERE MONTH(DATE) = Table2.month

Так что, если я сделаю , выберите * из Таблицы2, где месяц = ​​07

Тогда я получу количество строк в Таблице 1 с соответствующим месяцем.

Какое-то динамическое значение столбца для каждой строки, есть ли способ?

Примечание: я имею в виду, если есть какой-то встроенный способ, не использующий подзапрос, такой как

SELECT *, 
(SELECT COUNT(*) FROM Table1 WHERE MONTH(date) = Table2.month) as count
FROM Table2 where id = 2352

, так как мои реальные запросы будут использовать несколько и, следовательно, получатся очень грязными: (

Ответы [ 2 ]

1 голос
/ 16 августа 2011

Я бы использовал TRIGGER для обновления столбца Count в связанных строках таблицы 2 при каждом изменении в таблице 1.

1 голос
/ 16 августа 2011

Вы смотрели на создание представления?http://dev.mysql.com/doc/refman/5.0/en/create-view.html.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...