2013-05-03 2 views
-1

У меня есть следующий запрос: MySQLКак соединить 2 таблицы в MySQL на 2 идентификаторов

SELECT dispositions.name as disposition_name,leads.first_name,leads.city,leads.province_state,leads.country 
FROM leads 
LEFT JOIN dispositions ON leads.disposition_id_1=dispositions.id 

Этот запрос соединяет 2 таблицы (leads и dispositions) на поле disposition_id_1.
Это прекрасно работает и показывает мне мои результаты.

Проблема заключается в том, что у меня есть второе поле в моей leads таблице под названием disposition_id_2, который присоединяется с моим dispositions столом так же, как поле disposition_id_1. Поэтому оба этих поля связаны с одной таблицей и соединены идентификатором.

Итак, как я могу присоединиться к таблице проводов с таблицей расположений на этом втором поле (disposition_id_2), считая, что он уже соединен с той же таблицей с полем disposition_id_1?

ответ

1

Вы можете присоединиться к нескольким полям с одним и тем же идентификатором, это не имело бы значения.

SELECT dispositions.name 
as 
disposition_name, 
leads.first_name, 
leads.city, 
leads.province_state, 
leads.country 
FROM 
leads 
LEFT JOIN 
dispositions 
ON leads.disposition_id_1=dispositions.id 
AND leads.disposition_id_2=dispositions.id 

Здесь он получит все записи, где id_1 и id_2 равны адресу disitions.id. Если вам просто нужно, чтобы соответствовать либо поля использовать OR вместо AND

+0

Ok - но «disposition.name» будет значением disposition_id_1 или disposition_id_2? – Andrew

+0

будет только одно 'disposition.name' (при условии, что это disposition.name, а не disposition_name), и это перейдет к значению' disitions.id' 'NOT lead.disposition_id_ *' – raidenace

0

Вы можете объединять таблицы несколько раз с псевдонимами:

SELECT somefield, t1.x, t2.x 
FROM ... 
JOIN othertable AS t1 ON ... 
JOIN othertable AS t2 ON ... 
Смежные вопросы