Как MySQL-Noob, я изо всех сил пытаюсь решить следующую задачу: Предположим, 3 таблицы: location
groceries
и person
со следующими свойствами:
- Каждая таблица имеет первичный автоинкрементный целочисленный идентификатор и столбец varchar.
- Все записи в таблицах уникальны.
- Каждая запись в
groceries
имеет внешний ключ записи в person
.
- Возможно, что более одной записи из
groceries
используют один и тот же внешний ключ.
- (3) и (4) относятся к
person
и location
тоже
Итак, мы имеем отношение многие к одному. Как выбрать каждую тройку (groceries_product, person_name, location_name)
, где person_name
встречается не более одного раза?
Пример:
tables: groceries | person | location
------------------------------------ ------------- -------------------------
columns: id product person_id | id name | id name person_id
------------------------------------ ------------- -------------------------
1 hamburger 1 | 1 Peter | 1 home 1
2 cheeseburger 1 | 2 Tom | 2 work 1
3 carot 1 | | 3 zoo 2
4 potatoe 1 | |
5 mango 2 | |
Все тройки, которые вы можете создать, в которых события Peter
не имеют значения. Я хочу только тройки (манго, Том, зоопарк), потому что Том случается только один раз при всех возможностях. Я надеюсь, что мой вопрос не понятен. : -)