MySQL. INNER JOIN

324
10 сентября 2017, 00:43

Есть запрос

SELECT `id`, `group_id`, `option_id`, `media_id`
FROM `s_articles` AS `articles` 
                     INNER JOIN `s_article_configurator_set_group_relations` `set_groups` ON `articles`.`configurator_set_id` = `set_groups`.`set_id`
                     INNER JOIN `s_article_configurator_set_option_relations` `set_options` ON `articles`.`configurator_set_id` = `set_options`.`set_id`
                     RIGHT JOIN `s_articles_img` ON `articles`.`id` = 
                    (SELECT `articleID` FROM `s_articles_img` WHERE `articleID` IS NOT NULL);

При выполнении выводится ошибка

Столбец 'id' в field list задан неоднозначно

Answer 1

Предположительно, столбец id есть в нескольких таблицах и, соответственно, при данном запросе непонятно какой брать. Поэтому следует это указать явно, как и другие поля тоже.

SELECT NEEDED_TABLE_NAME.`id`, NEEDED_TABLE_NAME.`group_id`, NEEDED_TABLE_NAME.`option_id`, NEEDED_TABLE_NAME.`media_id`
Answer 2

Замените

SELECT `id`, `group_id`, `option_id`, `media_id`

на

SELECT `table_name.id`, `group_id`, `option_id`, `media_id`

А еще лучше при INNER JOIN всегда писать так:

SELECT `table_name.id`, `table_name.group_id`, `table_name.option_id` ...
READ ALSO
Асинхронность в цикле

Асинхронность в цикле

Имеется цикл такого вида

261
org.hibernate.AnnotationException: Illegal attempt to map a non collection as a @OneToMany

org.hibernate.AnnotationException: Illegal attempt to map a non collection as a @OneToMany

Пытаюсь соединиться с бд используя hibernateЕсть 6 таблиц(2 из них для связи ManyToMany) и 4 POJO класса с JPA-мапингом

607
Не могу понять как найти совпадающие значения в словаре HashMap

Не могу понять как найти совпадающие значения в словаре HashMap

ЗдравствуйтеУ меня есть HashMap, в котором находится 10 пар "ключ-значение"

370
Конвертация double в int

Конвертация double в int

Доброго времени сутокЕсть код, который проводит некоторые операции с числами типа double а потом выводит их на экран

426