2017-02-01 9 views
0

Вот визуальная схема расположения таблиц, если вы посмотрите ниже, моя цель - присоединить wn_writing_number_cstm.id_c к preps_contracted_reps.id.MySQL - Присоединение к таблице на столе уже зарегистрировано

Чтобы уточнить, что вы видите здесь, должно остаться таким же, мне нужно, чтобы стыки, где они есть, но кроме того, возьмите номер записи для сдуваемой Rep. (Мне нужно, чтобы получить title_c поле.)

Вот мой текущий код, я пробовал несколько соединений, но, похоже, не могу найти подходящее JOIN, чтобы получить то, что мне нужно. Это заявление получает все, что мне нужно, за исключением поля title_c, поскольку оно относится к числу записи rep.

EDIT: После того, как я добавил дополнительное заявление JOIN с псевдонимом, он теперь ничего не возвращает.

SELECT 
leads.id, 
leads.date_entered, 
leads.date_modified, 
leads.first_name, 
leads.last_name, 
leads.primary_address_state, 
leads.converted, 
leads.`status`, 
leads.lead_source, 
leads_cstm.territory_c, 
leads_cstm.contact_status_c, 
leads_cstm.campaign_id_c, 
leads_cstm.industry_c, 
leads_cstm.contract_type_c, 
leads_cstm.recruiting_link_sent_c, 
preps_contracted_reps.first_name AS rep_first_name, 
preps_contracted_reps.last_name AS rep_last_name, 
wn_writing_number_cstm.title_c 
FROM 
leads_wn_writing_number_1_c 
JOIN wn_writing_number 
ON leads_wn_writing_number_1_c.leads_wn_writing_number_1wn_writing_number_idb = wn_writing_number.id 
JOIN leads_cstm 
ON leads_wn_writing_number_1_c.leads_wn_writing_number_1leads_ida = leads_cstm.id_c 
RIGHT JOIN leads 
ON leads.id = leads_cstm.id_c 
JOIN wn_writing_number_cstm 
ON wn_writing_number.id = wn_writing_number_cstm.id_c 
JOIN preps_contracted_reps_wn_writing_number_1_c 
ON preps_contracted_reps_wn_writing_number_1_c.preps_contracted_reps_wn_writing_number_1wn_writing_number_idb = wn_writing_number_cstm.wn_writing_number_id_c 
JOIN preps_contracted_reps 
ON preps_contracted_reps_wn_writing_number_1_c.preps_cont9effed_reps_ida = preps_contracted_reps.id 
JOIN preps_contracted_reps AS upline_table 
ON upline_table.id = wn_writing_number_cstm.id_c 
WHERE 
leads.deleted = '0' 
GROUP BY 
leads.id 

Я также пытался сделать что-то подобное, но в соответствии с этой должности здесь: sql server - IN clause with multiple fields. Вы не можете вернуть несколько столбцов в оператор IN. Это возвращает меня обратно title_c. Но мне также нужны все поля, которые я выбирал сверху, поскольку это относится к подзапросу ниже.

SELECT 
preps_contracted_reps.first_name AS rep_first_name, 
preps_contracted_reps.last_name AS rep_last_name, 
wn_writing_number_cstm.title_c 
FROM 
preps_contracted_reps_wn_writing_number_1_c 
JOIN wn_writing_number_cstm 
ON preps_contracted_reps_wn_writing_number_1_c.preps_contracted_reps_wn_writing_number_1wn_writing_number_idb = wn_writing_number_cstm.id_c 
JOIN preps_contracted_reps 
ON preps_contracted_reps_wn_writing_number_1_c.preps_cont9effed_reps_ida = preps_contracted_reps.id 
WHERE 
preps_contracted_reps.id IN 
(SELECT 
preps_contracted_reps.id 
FROM 
leads_wn_writing_number_1_c 
JOIN wn_writing_number 
ON leads_wn_writing_number_1_c.leads_wn_writing_number_1wn_writing_number_idb = wn_writing_number.id 
JOIN leads_cstm 
ON leads_wn_writing_number_1_c.leads_wn_writing_number_1leads_ida = leads_cstm.id_c 
RIGHT JOIN leads 
ON leads.id = leads_cstm.id_c 
JOIN wn_writing_number_cstm 
ON wn_writing_number.id = wn_writing_number_cstm.id_c 
JOIN preps_contracted_reps_wn_writing_number_1_c 
ON preps_contracted_reps_wn_writing_number_1_c.preps_contracted_reps_wn_writing_number_1wn_writing_number_idb = wn_writing_number_cstm.wn_writing_number_id_c 
JOIN preps_contracted_reps 
ON preps_contracted_reps_wn_writing_number_1_c.preps_cont9effed_reps_ida = preps_contracted_reps.id 
WHERE 
leads.deleted = '0' 
GROUP BY 
leads.id) 
GROUP BY 
preps_contracted_reps.id 

EDIT: Я обновил этот вопрос, включив в него пересмотренный отчет. Первое утверждение ничего не возвращает, когда я пытаюсь присоединиться к ним, используя псевдоним, как было предложено.

+1

использование псевдонимов ..... – Pred

+0

Возможные дубликатом [MySQL ошибка 1066] (http://stackoverflow.com/questions/13711291/mysql-error-1066) – Pred

+0

Обновленный ответ с псевдонимом предложением, не зная, что я делаю неправильно, но когда я использую этот JOIN, я не возвращаю никаких результатов (никаких ошибок). Вопрос не связан с именами таблиц псевдонимов, а скорее с соответствующим синтаксисом, связанным с присоединением к уже присоединившейся таблице. –

ответ

0

Используя предложение псевдонимов Pred, я смог выяснить, что мне нужно было использовать более 1 таблицы. Мне нужно было снова добавить таблицу отношений в дополнение к таблице, в которой я хотел получить данные.

SELECT 
leads.id, 
leads.date_entered, 
leads.date_modified, 
leads.first_name, 
leads.last_name, 
leads.primary_address_state, 
leads.converted, 
leads.`status`, 
leads.lead_source, 
leads_cstm.territory_c, 
leads_cstm.contact_status_c, 
leads_cstm.campaign_id_c, 
leads_cstm.industry_c, 
leads_cstm.contract_type_c, 
leads_cstm.recruiting_link_sent_c, 
preps_contracted_reps.first_name AS rep_first_name, 
preps_contracted_reps.last_name AS rep_last_name, 
upline_table.title_c 
FROM 
leads_wn_writing_number_1_c 
JOIN wn_writing_number 
ON leads_wn_writing_number_1_c.leads_wn_writing_number_1wn_writing_number_idb = wn_writing_number.id 
JOIN leads_cstm 
ON leads_wn_writing_number_1_c.leads_wn_writing_number_1leads_ida = leads_cstm.id_c 
RIGHT JOIN leads 
ON leads.id = leads_cstm.id_c 
JOIN wn_writing_number_cstm 
ON wn_writing_number.id = wn_writing_number_cstm.id_c 
JOIN preps_contracted_reps_wn_writing_number_1_c 
ON preps_contracted_reps_wn_writing_number_1_c.preps_contracted_reps_wn_writing_number_1wn_writing_number_idb = wn_writing_number_cstm.wn_writing_number_id_c 
JOIN preps_contracted_reps 
ON preps_contracted_reps_wn_writing_number_1_c.preps_cont9effed_reps_ida = preps_contracted_reps.id 
JOIN preps_contracted_reps_wn_writing_number_1_c AS upline_relationship 
ON preps_contracted_reps.id = upline_relationship.preps_cont9effed_reps_ida 
JOIN wn_writing_number_cstm AS upline_table 
ON upline_relationship.preps_contracted_reps_wn_writing_number_1wn_writing_number_idb = upline_table.id_c 
WHERE 
leads.deleted = '0' 
GROUP BY 
leads.id 

 Смежные вопросы

  • Нет связанных вопросов^_^