2016-08-09 3 views
-1

я получил следующий запрос:Как присоединиться к двум строкам в запросе SELECT?

SELECT 
    IF(e.business_id IS NOT NULL, b.name, SUBSTRING_INDEX(p.names, ' ', 1)) as name, 
    f.code, 
    f.total, 
    f.date 
FROM business AS b INNER JOIN entity AS e ON b.id = e.business_id 
    INNER JOIN persons AS p ON e.person_id = p.id 
    INNER JOIN transactions AS t ON e.id = t.entity_id 
    INNER JOIN bills AS bi ON t.id = bi.transaction_id 
    WHERE e.type = 2 AND t.type_id = 1; 

Если business_id на entity стол пустой, мне нужно присоединиться одно имя и фамилию от человека. Я храню в поле под названием names имя человека - например. Стивен Пол - и в поле под названием surnames фамилия человека - например. Работа Вакансии.

До сих пор я получил имя с SUBSTRING_INDEX(p.names, ' ', 1), но как мне присоединиться к этой строке до SUBSTRING_INDEX(p.surnames, ' ', 1), разделенной пробелом?

+3

Вы пробовали читать о [строковые функции в MySQL] (http://dev.mysql.com/doc/refman/5.7/en/string-functions.html)? –

+0

Чтобы присоединиться к двум строкам, вы должны использовать CONCAT или CONTACT_WS, например, выбрать CONCAT (tbl.firstname, "", tbl.lastname) как full_name из таблицы; –

+0

привет, проходя некоторые мои старые ответы. Вам удалось разобраться с этим? – e4c5

ответ

1

Возможно, что вы действительно ищете является COALESCE

Возвращает первое ненулевое значение в списке, или NULL, если нет не-NULL значения.

SELECT 
    COALESCE(e.business_id, CONCAT(SUBSTRING_INDEX(p.names, ' ', 1),' ', SUBSTRING_INDEX(p.surnames, ' ', 1)) ... 
Смежные вопросы