Страницы

Поиск по вопросам

среда, 19 июня 2019 г.

Как конкатенировать значения из 3 столбцов в 1?

Привет всем. У меня есть 2 таблицы:
Avto:
ID ID_driver 1 23 2 32
Driver
ID_driver Name Surname 23 Misha Volkov 32 Valera Petrov
Как мне запросом вывести в одно поле сразу и имя, и фамилию водителя, чтобы получить следующее при выводе в таблице Avto
ID Name_Driver 1 Misha Volkov 2 Valera Petrov
Cейчас у меня есть такой запрос, но он выводит по разным полям.
SELECT A.*, DR.NAME AS NAME, DR.SURNAME AS SURNAME FROM Avto A INNER JOIN DRIVER DR ON A.ID_Driver = DR.ID
Получается вот такое
ID ID_driver Name Surname 1 23 Misha Volkov 2 32 Valera Petrov


Ответ

ответ для interbase/firebird: select char_field1 || ' ' || char_field2 (гуглится с полпинка при правильном названии бд. )
первоначально теги были проставлены mysql/sql поэтому ответ про mysql оставлю для истории:
google://mysql concat и в принципе, когда хотите что-нибудь соединить/сложить строки (в любом языке, хоть mysql, хоть python), гуглите concat+mysql, concat python, а потом уже задавайте вопрос здесь. это будет хорошим тоном
в качестве упражнения можете исправить вот это решение:
SELECT A.*, CONCAT(DR.NAME, '%', DR.SURNAME) as driverName FROM Avto A INNER JOIN DRIVER DR ON A.ID_Driver = DR.ID
и пожалуйста, если вы о себе не думаете, подумайте о других, не надо писать названия таблиц и полей КАПСОМ. КАПСОМ следует писать операторы SQL. Иначе кто-нибудь, когда будет дебажить ваши запросы без подсветки синтаксиса (да и с ней тоже), проклянет вас черным словом.
P.S. уточняйте, пожалуйста, базу данных, поскольку тег mysql вы удалили
mysql> use db; Database changed mysql> mysql> create table driver (name text, surname text); Query OK, 0 rows affected (0.22 sec)
mysql> insert into driver values ('vanya', 'petrov'); Query OK, 1 row affected (0.03 sec)
mysql> select concat(name, surname) from driver; +-----------------------+ | concat(name, surname) | +-----------------------+ | vanyapetrov | +-----------------------+ 1 row in set (0.00 sec)
mysql> select concat(name, surname) as kek from driver; +-------------+ | kek | +-------------+ | vanyapetrov | +-------------+
автора простить можно только потому, что он не знает о существовании кучи диалектов SQL

Комментариев нет:

Отправить комментарий