SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 16.11.2023 09:33:21

pani
Участник
Зарегистрирован: 16.11.2023
Сообщений: 4

Помощь с запросом начинающему: не понимаю синтаксис JOIN

Добрый день!

Есть 2 таблицы:
data и reg

Пишу простой запрос по одной таблице - все работает:

SELECT
"CD_REG",
"STAT_DATE",
SUM ("SHT_OUT") as "SHT_OUT",
SUM ("RUB_OUT") as "RUB_OUT",
FROM "data"
WHERE "STAT_DATE" >= '2023-09-01' AND ("CD_REG" = 1000000 OR "CD_REG" = 1025000)
GROUP BY "CD_REG", "STAT_DATE"

как только добавляю JOIN, запрос ругается, но я не понимаю почему

SELECT
"CD_REG",
"STAT_DATE",
SUM ("SHT_OUT") as "SHT_OUT",
SUM ("RUB_OUT") as "RUB_OUT",
SUM ("RUB_IN") as "RUB_IN"
FROM "data"
JOIN "reg" ON "data"."CD_REG" = "reg"."CD_REG"
WHERE "STAT_DATE" >= '2023-09-01' AND ("CD_REG" = 1000000 OR "CD_REG" = 1025000)
GROUP BY "CD_REG", "STAT_DATE"

ERROR: column reference "CD_REG" is ambiguous
  Позиция: 10
Позиция ошибки: line: 2 pos: 9


Пробую с кавычками, без кавычек, но всё не то! Что не так?

Отредактированно pani (16.11.2023 09:36:33)

Неактивен

 

#2 16.11.2023 09:39:28

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Помощь с запросом начинающему: не понимаю синтаксис JOIN

Из текста ошибки следует, что колонка CD_REG есть в двух таблицах. В области SELECT необходимо указать из какой таблицы взять колонку.

Попробуйте SELECT data.CD_REG, ...

Неактивен

 

#3 16.11.2023 10:14:09

pani
Участник
Зарегистрирован: 16.11.2023
Сообщений: 4

Re: Помощь с запросом начинающему: не понимаю синтаксис JOIN

Да, так запрос отработал! Спасибо огромное! smile

SELECT
"data"."CD_REG",
"STAT_DATE",
SUM ("SHT_OUT") as "SHT_OUT",
SUM ("RUB_OUT") as "RUB_OUT",
SUM ("RUB_IN") as "RUB_IN"
FROM "data"
JOIN "reg" ON "data"."CD_REG" = "reg"."CD_REG"
WHERE "STAT_DATE" >= '2023-09-01' AND ("data"."CD_REG" = 1000000 OR "data"."CD_REG" = 1025000)
GROUP BY "data"."CD_REG", "STAT_DATE"

Только я предполагала, что в результате я получу дополнительные столбцы из таблицы reg, а получила тоже самое, что и без join... Что я сделала не так?

Неактивен

 

#4 16.11.2023 10:32:38

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Помощь с запросом начинающему: не понимаю синтаксис JOIN

Нужно перечислить в часть SELECT те столбцы, которые нужны.

Если нужны все столбцы из таблицы reg, то можно
SELECT reg.*, data.CD_REG, ...

Неактивен

 

#5 17.11.2023 01:53:07

pani
Участник
Зарегистрирован: 16.11.2023
Сообщений: 4

Re: Помощь с запросом начинающему: не понимаю синтаксис JOIN

Мои благодарности до луны и обратно!!! smile smile smile


SELECT
"data"."CD_REG",
"STAT_DATE",
"reg"."NM_REG",
SUM ("SHT_OUT") as "SHT_OUT",
SUM ("RUB_OUT") as "RUB_OUT",
SUM ("RUB_IN") as "RUB_IN"
FROM "data"
JOIN "reg" ON "data"."CD_REG" = "reg"."CD_REG"
WHERE "STAT_DATE" >= '2023-09-01' AND ("data"."CD_REG" = 1000000 OR "data"."CD_REG" = 1025000)
GROUP BY "data"."CD_REG", "STAT_DATE", "reg"."NM_REG"

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson