Inner Join 2 таблицы множественный результат - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть 2 таблицы, одна для продуктов и одна для размеров.они имеют отношение к fk, и проблема в том, что когда я использую внутреннее соединение, я не могу использовать «group by», чтобы не иметь повторяющихся результатов.это код:

SELECT
sneakers.sneaker_id,
sneakers.sneaker_name,
sneakers.gender,
sneakers.description,
sneakers.price,
sizes.size,
brand_names.brand_name
FROM sneakers
INNER JOIN sizes ON sneaker_fk = sneaker_id

, если я попытаюсь использовать GROUP BY sneaker_fk, это даст мне следующий ответ:

Error
SQL query: Documentation


SELECT sneakers.sneaker_id,sneakers.sneaker_name, sneakers.gender, sneakers.description,
                                    sneakers.price, sizes.size, brand_names.brand_name FROM sneakers
                                    INNER JOIN sizes ON sneaker_fk = sneaker_id
                                    INNER JOIN brand_names ON brand_name_fk = brand_name_id
                                    GROUP BY sneaker_fk LIMIT 0, 30
MySQL said: Documentation

#1055 - Expression #6 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'sneakerstore.sizes.size' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

Что я делаю неправильно ??Есть ли у вас лучшее решение для отображения одного предмета со всеми соответствующими размерами без нескольких результатов?

Надеюсь, вы поможете мне как можно быстрее!заранее спасибо

1 Ответ

0 голосов
/ 13 декабря 2018

Использование MySQL Group_Concat () функция

Функция MySQL GROUP_CONCAT () возвращает строку с объединенным ненулевым значением из группы.

Выдержка из Использование GROUP_CONCAT с объединенными таблицами

GROUP_CONCAT также работает с объединениями.

Допустим, у нас есть таблицы курсов:

  | id | name |
  +—-+—————+
  | 1 | Ruby 101 |
  +—-+—————+
  | 2 | TDD for Poets |
  +—-+—————+'

У нас также есть второйбронирования столов:

  | id | course_id |
  +—-+———–+
  | 7 | 1 |
  +—-+———–+
  | 8 | 1 |
  +—-+———–+
  | 9 | 1 |
  +—-+———–+
  | 10 | 2 |
  +—-+———–+
  | 11 | 2 |
  +—-+———–+


SELECT courses.name, GROUP_CONCAT(bookings.id)
FROM bookings
INNER JOIN courses ON courses.id == bookings.course_id
GROUP BY bookings.course_id;

Набор результатов выглядит следующим образом:

| courses.name | GROUP_CONCAT(bookings.id) |
+—————+—————————+
| Ruby 101 | 7,8,9 |
+—————+—————————+
| TDD for Poets | 10,11 |
+—————+—————————+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...