2017-02-01 4 views
0

Hier ist eine visuelle Darstellung des Layouts der Tabellen, wenn Sie unten schauen, ist mein Ziel, Feld zu preps_contracted_reps.id beizutreten.MySQL - Beitreten einer Tabelle auf einer Tabelle Bereits beitreten

Um klären, was Sie hier sehen gleich bleiben muss, muss ich halten die Verbindungen, wo sie sind, sondern darüber hinaus die Schreibnummer für den Vertrag abgeschlossen Rep greifen. (Ich die bekommen müssen title_c Feld.)

Hier ist mein aktueller Code, ich habe mehrere Joins versucht, aber kann nicht scheinen, die richtige JOIN herauszufinden, was ich brauche. Diese Anweisung erhält alles, was ich brauche, außer für das Feld title_c, da es sich auf die Schreibnummer des Rep bezieht.

EDIT: Sobald ich die extra JOIN Anweisung mit dem Alias ​​hinzugefügt, bringt es jetzt nichts zurück.

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 

Ich habe auch versucht, so etwas wie dies zu tun, aber nach diesem Beitrag hier: sql server - IN clause with multiple fields. Sie können mehrere Spalten in der IN-Anweisung nicht zurückholen. Dieser bekommt mich die korrekte title_c zurück. Aber ich würde auch alle Felder benötigen, die ich oben ausgewählt habe, da es sich auf die Unterabfrage bezieht.

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: Ich habe diese Frage aktualisiert, um eine überarbeitete Aussage zu enthalten. Die erste Anweisung bringt nichts zurück, wenn ich versuche, ihnen mit einem Alias ​​wie vorgeschlagen beizutreten.

+1

Aliase ..... – Pred

+0

Mögliche Duplikat [mysql Fehler 1066] (http://stackoverflow.com/questions/13711291/mysql-error-1066) – Pred

+0

aktualisiert Antwort mit alias Vorschlag, unsicher Was ich falsch mache, aber wenn ich dieses JOIN verwende, gebe ich keine Ergebnisse zurück (keine Fehler). Die Frage hat nichts damit zu tun, wie man Tabellennamen aliasiert, sondern die richtige Syntax in Bezug auf das Verknüpfen mit einer bereits verbundenen Tabelle. –

Antwort

0

Mit Preds Vorschlag von Aliasen konnte ich herausfinden, dass ich mehr als 1 Tabelle aliasieren musste. Ich musste die Beziehungstabelle zusätzlich zu der Tabelle, von der ich Daten abrufen wollte, erneut aliasieren.

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 
Verwandte Themen