Ich habe eine Tabelle namens FieldList
die wie folgt aussieht:Wie mehrere Spalten aus der gleichen Tabelle zu verbinden?
ElementName|Description|comp_id|FieldName
-----------------------------------------
Name | red | 1 | names
Name | blue | 7 | names
field | red | 1 | names
boxes | blue | 5 | blues
field | orange | 7 | reds
Und ich möchte eine neue Tabelle zeigen, dass nur die ElementNames
, die gleich sind zeigt und dann zeigen, welche comp_id
sie gehören wie diese so sieht es aus :
ElementName| comp_id| comp_id
-----------------------------
Name | 1 | 7
field | 1 | 7
Dabei spielt es keine genau so aussehen müssen, aber der Punkt ist, ich die ElementNames
zu verbinden und zeigen in der Lage sein, die identisch sind, aber unterschiedliche comp_id
‚s haben. Dies ist das bisschen SQL-Code, den ich bereits habe, aber es funktioniert offensichtlich nicht.
SELECT a.comp_id, a.ElementName, b.ElementName
FROM FieldList a
INNER JOIN FieldList b ON a.ElementName = b.ElementName;
Wie viele ähnliche Elementnamen könnte es geben? Wenn die maximale Anzahl nicht bekannt ist, benötigen Sie dynamisches SQL, um dies zu lösen. –
Warum funktioniert das nicht? Was stimmt damit nicht? –
Dies entspricht "wähle a.comp_id, a.elementname von ..." ohne den Join. Es ist ein Equijoin an sich. Wenn Sie eine endliche Anzahl von Werten haben oder wissen, dass es logisch eine Obergrenze gibt, können Sie eine Abfrage erstellen, die erfüllt werden muss. Ich würde gerne diese Lösung zeigen, wenn Sie mir eine Vorstellung davon geben können, wie viele mögliche ElementName-Werte es gibt. –