#mysql
Вопрос:
У меня есть следующая таблица,
Имя | День |
---|---|
Джон | Понедельник |
Лиам | Понедельник |
Лиам | Вторник |
Лиам | Среда |
Джон | Среда |
а другой стол-это,
День | Яйца |
---|---|
Понедельник | 10 |
Вторник | 15 |
Понедельник | 10 |
Среда | 30 |
Среда | 30 |
Я хочу добавить стоимость яиц в первую таблицу. Так что это должно стать,
Имя | День | Яйца |
---|---|---|
Джон | Понедельник | 10 |
Лиам | Понедельник | 10 |
Лиам | Вторник | 15 |
Лиам | Среда | 30 |
Джон | Среда | 30 |
Комментарии:
1. допустим, в понедельник будет 11, а во второй-12, как вы решите, какой из них получит то или иное значение, не имеет значения
Ответ №1:
Во второй таблице есть повторяющиеся строки, поэтому вы можете выбрать отдельные строки, а затем выполнить ОБЪЕДИНЕНИЕ.
Давайте назовем первый стол users
, а второй будет eggs
. Вы можете выполнить такой запрос:
SELECT `users`.name, `users`.day, eggs_count.eggs FROM `users` JOIN (SELECT DISTINCT `day`, `eggs` FROM `eggs`) AS eggs_count ON `users`.day = eggs_count.day;
Значения яиц во второй таблице не могут отличаться для одного и того же дня, потому что в этом случае сопоставить значения будет невозможно.