Welche Art von Join soll verwendet werden?

8

Ich habe eine Kerntabelle und drei Tabellen, die die Kerntabelle auf verschiedene Arten erweitern.

Ich arbeite mit MLS-Daten und ich habe eine "gemeinsame" Tabelle, die Informationen enthält, die allen MLS-Listen gemeinsam sind, und dann eine Tabelle, die speziell "Wohn" -Informationen, eine für "Werbung" usw. enthält benutze mls Nummer, um eine einzelne Tabelle zu verbinden, wenn ich eine Auflistung kenne, wenn der Eigenschaftstyp bekannt ist, aber für die Suche möchte ich allen beitreten und die speziellen Felder für Suchkriterien zur Verfügung haben (nicht einfach die gemeinsame Tabelle durchsuchen) / p>

Welche Art von Join gibt mir ein Dataset, das alle Auflistungen enthält (einschließlich der erweiterten Felder in den idx-Tabellen)?

Für jeden allgemeinen Tabellendatensatz gibt es einen einzelnen entsprechenden Eintrag in NUR EINS der idx-Tabellen.

%Vor%     
jondavidjohn 03.03.2011, 20:59
quelle

4 Antworten

6

Wenn Sie alles in einer Zeile haben möchten, können Sie etwas wie dieses Format verwenden. Im Grunde gibt es alle "Common" -Felder, dann die anderen Felder, wenn es eine Übereinstimmung gibt, sonst NULL :

%Vor%

Denken Sie daran, dass es besser ist, die Felder aufzulisten, als SELECT * wann immer möglich zu verwenden ...

Ich gehe auch davon aus, dass die MySQL-Syntax dieselbe ist wie die von SQL Server, die ich verwende.

    
JNK 03.03.2011, 21:29
quelle
0

Ich habe ein ähnliches Set von Tabellen, wo die Tabelle 'Jobs' die Kerntabelle ist.

Ich habe diese Abfrage, die bestimmte Elemente aus jeder der anderen 2 Tabellen auswählt:

%Vor%

Also, wie Sie sehen können, kein spezifischer JOIN, sondern die verknüpften Felder. Sie benötigen wahrscheinlich nur eine zusätzliche JOIN-Zeile für Ihr Setup.

    
Stevo 03.03.2011 21:08
quelle
0

Hässliche Lösung / schlechter Versuch / vielleicht missverstandene Frage:

%Vor%     
Orbit 03.03.2011 21:11
quelle
0

Orbit ist nah. Verwenden Sie innere Verknüpfung, keine linke Verknüpfung. Sie möchten nicht, dass häufig in der Verknüpfung angezeigt wird, wenn in idx keine Zeile vorhanden ist.

Sie MÜSSEN Union 3-Abfragen ausführen, um die richtigen Ergebnisse zu erhalten, vorausgesetzt, dass jeder Datensatz gemeinsam nur 1 IDX-Tabelle haben kann. Fügen Sie "NULL" ein, um die Spalten, die jede IDX-Tabelle enthält, auszufüllen, damit sie unionsfähig sind.

BTW Ihr Tischdesign ist gut.

    
Mike 04.03.2011 10:24
quelle

Tags und Links