Jump to content

SQL Abfrage mit zusätzlichem SELECT?

Empfohlene Beiträge

Hallo zusammen,

 

ich habe einen recht komplizierten fachlichen Sachverhalt, den ich jetzt hier versuche, aufs Forum runterzubrechen.

 

Ich habe folgende Tabelle

Artikel-Nr  1 				Artikel-Nr  2
001							4711
001							4712
001							4713
002							0815
002							0816

 

Über einen Geschäftsfall habe ich z.B. nur die 4712 an der Hand.

Was ich hierzu noch bräuchte, wäre die passende Artikelnummer 1 (001), sowie die dazu verknüpften Artikelnummern 2 (4711, 4713).

 

Dies ist nur ein Fall von vielen, den ich zusätzlich in ein UNION reinpacken müsste. 

Bekomme ich das über ein Subselect gelöst? Bin leider nur recht einfach immer in SQL unterwegs gewesen mit Subselects kenne ich mich jetzt nur vom Hörensagen aus. Hier im SQL Tool bekomme ich es nicht gebacken.

Oder ist das der komplett falsche Ansatz?

Programmiert bekäme ich das in mehreren Schritten aber als ein SELECT-Statement? Keine Ahnung...

 

Hat wer Rat?

 

Gruß

Ganymede

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Spiel mal ein wenig mit

SELECT * FROM Article 
    WHERE "Artikel-Nr 1" IN (SELECT "Artikel-Nr 1" FROM Article 
                            WHERE "Artikel-Nr 2" = 4712)

Bei großen Tabellen kann es teuer werden. Alternativ bau dir eine Stored Procedure.
 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Hallo Goose,

 

ja so etwas habe ich auch gebaut. Danke Dir!

Dann bin ich ja nicht ganz auf dem Holzweg damit.

 

Ich weiß, dass das teuer ist. Die Anforderung ist aber alles in ein Select. Und wie gesagt, das ist eines von vielen. Das WIRD langsam.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
SELECT
    articlesWanted.*
FROM
    articles AS article2
INNER JOIN articles AS article1 
	ON article2.articlenr2 = article1.articlenr2
INNER JOIN articles AS articlesWanted 
	ON article1.articlenr1 = articlesWanted.articlenr1
WHERE
    article2.articlenr2 = 4712

Sollte von der Performance her jetzt nichts heftiges sein, eventuell halt Index setzen.

bearbeitet von PVoss

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Am 26.9.2016 um 11:00 schrieb PVoss:

SELECT
    articlesWanted.*
FROM
    articles AS article2
INNER JOIN articles AS article1 
	ON article2.articlenr2 = article1.articlenr2
INNER JOIN articles AS articlesWanted 
	ON article1.articlenr1 = articlesWanted.articlenr1
WHERE
    article2.articlenr2 = 4712

Sollte von der Performance her jetzt nichts heftiges sein, eventuell halt Index setzen.

Brrr, kann man so nicht stehen lassen.

Hier ist ein simpler JOIN auf die selbe Tabelle gefragt.

SELECT
    articlesWanted.*
FROM
    articles AS article
INNER JOIN articles AS articlesWanted 
	ON article.articlenr1 = articlesWanted.articlenr1
WHERE
    article.articlenr2 = 4712

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2019 SE Internet Services

fidelogo_small.png

if_icon-6-mail-envelope-closed_314900.pnSchicken Sie uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App


Get it on Google Play

Kontakt

Hier werben?
Oder senden Sie eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung