@khodos_dmitry

Почему дважды происходит выборка при SQL запросе?

SELECT GROUP_CONCAT(CONCAT('<img class=\"ps-icon\" title =\"', 
		IF(`cpl_method_get`.`name` = `cpl_method_get`.`group`, `cpl_method_get`.`group`, CONCAT(`cpl_method_get`.`group`, ' (', `cpl_method_get`.`name`, ')')),
		'\" src=\"/img/ps/icon/', `cpl_method_get`.`img`, '.png\" >') SEPARATOR ' ') as `method_get` 
		FROM `cpl_mfo` JOIN `cpl_mfo-method_get` ON `cpl_mfo`.`name` = `cpl_mfo-method_get`.`mfo` JOIN `cpl_method_get` ON `cpl_mfo-method_get`.`method_get` = `cpl_method_get`.`name` JOIN `cpl_mfo_loans` ON `cpl_mfo_loans`.`mfo_id` = `cpl_mfo`.`id`

В method_get все значения выбираются четырежды.
Если убрать
JOIN `cpl_mfo_loans` ON `cpl_mfo_loans`.`mfo_id` = `cpl_mfo`.`id`

то все нормально.
Что выбирается, можно посмотреть здесь: https://credits-pl.ru/test/
Таблицы:
cpl_mfo
5abd0550b9df0347879689.png
cpl_mfo_loans
5abd056cf371c020232695.png
cpl_method_get
5abd05855ca4a496940709.png
cpl_mfo-method_get
5abd059c4e90e635978001.png
  • Вопрос задан
  • 82 просмотра
Пригласить эксперта
Ответы на вопрос 1
@justpusher
У вас mfo "Е-Капуста" соответствует 4 записи в cpl_mfo_loans.
Это значит, что после последнего джойна у вас будет 4 строчки для Е-Капусты, в которых поля всех таблиц кроме cpl_mfo_loans будут одинаковые. Вы их объединяете с помощью group_concat, поэтому получаете 4 раза одно и то же. Я советую вам убрать group_concat и поставить SELECT *, тогда вам будет понятнее, какие там данные.

P.S. на будущее: выкладывайте структуру таблиц и дампы в виде SQL-запросов (CREATE TABLE, INSERT), по скриншотам на глаз разбираться очень сложно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Badoo Development Москва
от 140 000 до 180 000 руб.
Badoo Development Москва
от 180 000 до 250 000 руб.
4px Москва
от 100 000 до 150 000 руб.
21 авг. 2018, в 14:23
350000 руб./за проект
21 авг. 2018, в 13:54
5000 руб./за проект
21 авг. 2018, в 13:30
5000 руб./за проект