Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Abfrage mit 1-n Beziehung

Begonnen von Fluffy, Juli 11, 2011, 16:00:00

⏪ vorheriges - nächstes ⏩

Fluffy

Hallo,

folgendes Problem.

Ich habe in einer Tabelle Adressen mit Namen usw..
In einer anderen Tabelle habe ich Systeme, die aufgeteilt sind in Technischer Besitzer und Systembesitzer.

Jetzt will ich eine Auswahl treffen, bei der ich zu einem System den Namen des Besitzers ausgebe.
D.h. aus der Tabelle Adresse 2x den Namen
Wie kriege ich das hin?

SELECT Nodes.Node_ID, Nodes.NodeName, Nodes.ContactIDOwnerTech, Nodes.ContactIDOwnerProduct, Contacts.Contact_id, Contacts.OwnerName, Contacts.OwnerVorname
FROM Nodes LEFT JOIN Contacts ON (Nodes.ContactIDOwnerTech = Contacts.Contact_id) AND (Nodes.ContactIDOwnerProduct = Contacts.Contact_id);

Er zeigt natürlich keinen Namen an, weil er nicht weiß, welchen er nehmen soll.


Gruss Fluffy

database

Hallo,

eine der Möglichkeiten wäre es mit 3 Abfragen zu arbeiten.
Abfrage1 bringt dabei alle Product-Contacts:


SELECT Nodes.NodeName, Contacts.Contact_ID, Contacts.OwnerName AS ProdN, Contacts.OwnerVorname AS ProdV, Nodes.Node_ID
FROM Contacts INNER JOIN Nodes ON Contacts.Contact_ID = Nodes.ContactIDOwnerProduct;


Abfrage2 bringt alle Tech-Contacts:


SELECT Contacts.Contact_ID, Nodes.NodeName, Contacts.OwnerName AS TechN, Contacts.OwnerVorname AS TechV, Nodes.Node_ID
FROM Contacts INNER JOIN Nodes ON Contacts.Contact_ID = Nodes.ContactIDOwnerTech;


und Abfrage3 verbindet die Informationen über die Node_ID um Product- und Tech ContactsNamen gemeinsam anzuzeigen.


SELECT Abfrage3.ProdN, Abfrage3.ProdV, Abfrage3.NodeName, Abfrage3.Node_ID, Abfrage4.TechN, Abfrage4.TechV
FROM Abfrage3 INNER JOIN Abfrage4 ON Abfrage3.Node_ID = Abfrage4.Node_ID;


HTH

Fluffy