SQL — подсчет количества связанных записей в другой таблице
Поскольку я новичок в SQL, я не могу описать проблему простым способом, поэтому позвольте мне показать вам пример:
-
Я бы group_id person_id
-
Я бы название
-
Я бы group_id
Как видите, GROUP может иметь несколько ЧЕЛОВЕК, а ПРОДУКТ может быть связан с GROUP и PERSON.
С этого момента я хотел бы посчитать количество ЛИЦ, имеющих ПРОДУКТ в ГРУППЕ
Я на самом деле не понимаю фон IN или использование другого SELECT в рамках FROM, так что если в этом суть, то я счастлив, что я был на шаг впереди, лол.
Взять количество записей из другой таблицы
Указать в поле количество связанных записей из другой таблицы
Здравствуйте! Помогите, пожалуйста, решить следующую задачу. Имеются 2 таблицы: "Организации" и.
Посчитать количество записей в одной таблице и передать значение в поле другой таблицы
Здравствуйте. Есть две таблицы "Деканат" и "Студенты". Нужно чтобы в поле "Деканат.Количество.
Вывод числа записей одной таблицы для соответствующих записей другой
Доброго времени суток. Возможно, я не правильно сформулировал заголовок, но как по другому это.
Как добавить несколько записей из таблицы в ячейку другой таблицы через запятую?
имеется бд кулинарная книга, где при добавлении блюда, продукты добавлялись через запятую, по.
Как получить количество связей между двумя таблицами в SQL Server, используя TSQL?
Я использую следующий код, чтобы получить все таблицы, которые имеют внешний ключ таблицы в where пункт, который в этом примере SolutionUser :
Чего я не могу добиться, так это получить мощность этих отношений (один-к-одному, один-ко-многим)
Можно ли получить эти мощности с помощью T-SQL?
1 ответ
Это концептуальный предмет. Вы не можете узнать, используя схему или даже данные.
T-SQL — получить количество объединенных записей
Интересно, как лучше написать следующий запрос к Microsoft SQL Server.
У меня есть три таблицы: surveys , survey_presets и survey_scenes . Они имеют следующие столбцы:
Оба формата survey_presets и survey_scenes иметь внешние ключи на surveys для survey_id колонка.
Теперь я хочу выбрать все опросы с количеством соответствующих пресетов и сцен для каждого. Вот «псевдозапрос» того, что я хочу:
я могу сделать беспорядок с SELECT DISTINCT , JOIN , GROUP BY и т. д., но я новичок в T-SQL и сомневаюсь, что мой запрос будет оптимальным в каком-либо смысле.
задан 19 сен ’12, 12:09
2 ответы
Я бы сделал подсчет в подзапросах, чтобы избежать декартовых произведений. Поскольку у вас может быть несколько совпадающих строк в presets а также несколько в scenes результирующее количество может быть умножено. Вы можете написать простой запрос на соединение и избежать умножения путем подсчета distinct survey_presets.id и distinct survey_scenes.id хотя.
Как это работает?
Вы можете ввести специальный тип подзапроса, который называется derived table в раздел FROM вашего запроса. Производная таблица определяется как обычный запрос, заключенный в круглые скобки, за которым следует псевдоним таблицы. Он не может использовать какой-либо столбец из внешнего запроса, но может отображать столбцы, которые вы используете в разделе ON для присоединения производной таблицы к основной части запроса.
В этом случае производная таблица просто подсчитывает строки, сгруппированные по идентификатору; объединения соединяют подсчеты с опросами.
Хорошее объяснение. Хотя я обнаружил небольшую ошибку: если с опросом не связаны никакие пресеты или сцены, соответствующий счетчик равен NULL, а не нулю. Не подскажете, как это исправить? — Михаил
О, и это не баг. Вот как работает левое соединение, подставляя нули для каждого запрошенного столбца, когда не удается найти соответствующую строку. — Никола Марковинович
Ницца. Жаль, что это не работает в EntityDataSource. Но это другой вопрос. Спасибо еще раз. — Михаил