Select в select или другой способ решения - MySQL
Формулировка задачи:
Необходимо написать запрос.
В таблице Info хранится Имя пользователя. Связана таблица с таблицей Users по ID_Users. В таблице Chat. Хранится ID_отправителя (Chat.ID_Users_otp), ID_получателя (Chat.ID_Users_pol) и сообщение (Message).
Вот как вывести Имя того кто написал, Имя того кому написали. И само сообщение.
Пробовал типо:
Говорит возвращается несколько записей.
Как исправить этот запрос что бы работал?
SELECT Info.Value, (SELECT Info.Value FROM Info, Chat, Users WHERE Users.ID_Users=Chat.ID_Users_pol AND Info.ID_Char=2 AND Users.ID_Users=Info.ID_Users) FROM Info, Chat, Users WHERE Users.ID_Users=Chat.ID_Users_otp AND Info.ID_Char=2 AND Users.ID_Users=Info.ID_Users ORDER BY Chat.DateTime
Сделал что б ФИ хранинились в таблице Users, что бы объединять только 2 таблицы
SELECT CONCAT(Users.LastName, ' ', Users.FirstName) AS ФИ, (SELECT CONCAT(Users.LastName, ' ', Users.FirstName) AS ФИ FROM Users,Chat WHERE Users.ID_Users = Chat.ID_Users_pol), Chat.Message, Chat.DateTime FROM Users,Chat WHERE Users.ID_Users = Chat.ID_Users_otp ORDER BY Chat.DateTime
Решение задачи: «Select в select или другой способ решения»
textual
Листинг программы
SELECT CONCAT(uo.LastName, ' ', uo.FirstName) AS FIO_o, CONCAT(up.LastName, ' ', up.FirstName) AS FIO_p, Chat.Message FROM Chat JOIN Users uo ON uo.ID_Users = Chat.ID_Users_otp JOIN Users up ON up.ID_Users = Chat.ID_Users_pol
Объяснение кода листинга программы
- В данном коде используется язык SQL для работы с базой данных.
- Код выполняет запрос SELECT для выборки данных из таблицы Chat.
- В запросе используются операторы JOIN для объединения таблиц Chat, Users (для поля uo) и Users (для поля up).
- Поля, которые будут возвращены в результате запроса, определены после ключевого слова AS:
- FIO_o - это комбинация полей LastName и FirstName из таблицы Users с идентификатором uo.
- FIO_p - это комбинация полей LastName и FirstName из таблицы Users с идентификатором up.
- Message - это поле из таблицы Chat.
- Значения полей LastName и FirstName из таблицы Users с идентификаторами uo и up объединяются с помощью функции CONCAT.
- Результатом запроса будет набор данных, содержащий поля FIO_o, FIO_p и Message.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д