[Решено] mysql выборка из нескольких таблиц

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Ответить
Аватара пользователя
bars
Сообщения: 941
ОС: BSD/LINUX
Контактная информация:

[Решено] mysql выборка из нескольких таблиц

Сообщение bars »

Добрый день.
Есть база mysql с 2мя таблицами.
Из таблиц нужна выборка данных.

Код: Выделить всё

таблица pres
+-----+-------+-------+-----+------+-----+
| id  | date  | time  | up  | low  | pul |
+-----+-------+-------+-----+------+-----+

таблица sug
+-----+------------+------+-------+
| id  | date       | time | sug   |
+-----+------------+------+-------+
Нужна выборка из двух таблиц за определенное число к примеру 2023-07-25.
Что бы получилось так.

Код: Выделить всё

+-------+-------+-----+------+
| date  | time  | up  | sug  |
+-------+-------+-----+------+
Пытаюсь пока сделать запрос полный.

Код: Выделить всё

SELECT `pres`.`date`, `pres`.`time`, `pres`.`up`, `sug`.`date`, `sug`.`time`, `sug`.`sug` 
FROM pres INNER JOIN sug ON `pres`.`date`=`sug`.`date`;
Но как то косячно получается.
Как лучше сделать подобную выборку?
Последний раз редактировалось bars 26.07.2023 19:08, всего редактировалось 1 раз.
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2673
ОС: Gentoo

Re: mysql выборка из нескольких таблиц

Сообщение ormorph »

А если добавить ещё через запятую sug, после from. Ну и join тут не особо и нужен, хватило бы операторов where и and.
С вопросами особо не приставать, так как после операции отслеживаюсь в больнице и нет возможности проверять такое. Если прочитать внимательно по применению, то разобраться не долго самому.
Спасибо сказали:
Аватара пользователя
bars
Сообщения: 941
ОС: BSD/LINUX
Контактная информация:

Re: mysql выборка из нескольких таблиц

Сообщение bars »

ormorph писал(а):
26.07.2023 15:33
А если добавить ещё через запятую sug, после from. Ну и join тут не особо и нужен, хватило бы операторов where и and.
С вопросами особо не приставать, так как после операции отслеживаюсь в больнице и нет возможности проверять такое. Если прочитать внимательно по применению, то разобраться не долго самому.
вы имеете ввиду такой запрос.

Код: Выделить всё

SELECT `pres`.`date`, `pres`.`time`, `pres`.`up`, `sug`.`date`, `sug`.`time`, `sug`.`sug` FROM pres, sug WHERE DATE(date) = '2023-07-16' ORDER BY `date` ASC;
То тогда ошибка
ERROR 1052 (23000): Column 'date' in where clause is ambiguous
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2673
ОС: Gentoo

Re: mysql выборка из нескольких таблиц

Сообщение ormorph »

bars писал:
26.07.2023 16:04
вы имеете ввиду такой запрос.
Ни в коем случае. Там сравнение нужно так же как в join, название таблицы точка столбец... Так же как и в join. Функция date тут не нужна...
Добавлено (16:56):
Небольшое уточнение. С where можно использовать, если знаешь, что таблицы содержат одинаковые значения в одинаковых названиях колонок. Иначе нужно совмещать join с where. На счёт функции date, то если значением колонки использовался именно тип date, то её аргументом должен быть полный путь к колонке, а не просто название колонки.
Спасибо сказали:
Аватара пользователя
bars
Сообщения: 941
ОС: BSD/LINUX
Контактная информация:

Re: mysql выборка из нескольких таблиц

Сообщение bars »

Код: Выделить всё

SELECT `p`.`date`, `p`.`time`, `p`.`up`, `s`.`sug` FROM pres p left join sug s on `s`.`date` = `p`.`date` and `s`.`time` = `p`.`time` WHERE `p`.`date` = "2023-07-22";
Рабочий запрос.
Спасибо за содействие.
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Спасибо сказали:
Ответить