Zum Inhalt springen

SQL Abfrage mit zusätzlichem SELECT?


Empfohlene Beiträge

Geschrieben

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

Geschrieben

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.
 

Geschrieben

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.

Geschrieben (bearbeitet)
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
  • 1 Monat später...
Geschrieben
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

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, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

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

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...