Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Verschachtelte Abfrage (joins)

Empfohlene Antworten

Veröffentlicht

Morgen erst mal.

Ich habe ein "kleines" Problemchen. Vor lauter Programmierung seh ich hier aber leider die Lösung nicht :confused:

Hier der DB - Aufbau:

Tabelle Produkt:

- Produkt_ID (PS)

- Beschreibung

- Größe

- Pfad

Tabelle Rubrik:

- Rubrik_ID (PS)

- Beschreibung

Ein Produkt kann mehreren Rubriken zugewiesen sein !

Tabelle Produkt_Rubrik:

- Produkt_ID (PS + Relat)

- Rubrik_ID (PS + Relat)

zu jedem Produkt können mehrere Details hinterlegt werden, wobei ein Detail aber nur zu einem Produkt gehört !

Tabelle Details:

- Produkt_ID (PS + Relat)

- Zeilennr. (PS)

- Beschreibung

So weit so gut. Jetzt hab ich aber folgende Konstelation: Ein User wählt eine Rubrik aus. Z.B. Rubrik "Anleitung"

Er möchte jetzt alle Produkte sehen, die zu dieser Rubrik gehören. Das ist auch noch kein Problem. Jetzt will er aber auch nach einem Detail zu dieser Rubrik suchen. Also habe ich 2 Parameter. 1. die Rubrik, 2. die Detailbeschreibung.

Wie kann ich beides in einer select - Abfrage gestalten ?

Also die Rubrik muß in der Tabelle Produkt_Rubrik sein <- dadurch habe ich die Produkt_ID. Und bei diesen Produkten muß in der Tabelle Details muß die Beschreibungen dieses Produktes like '%Suchbegriff%' sein.

Ich hab leider keine Lösung gefunden. Ich seh aber auch den Wald vor lauter Bäumen nicht mehr :P

Gruß UBAI - Kaum macht mans richtig, schon funktionierts !

Moin !

Probiers mal damit:

SELECT *

FROM

((Produkt

INNER JOIN Details ON Produkt.Produkt_ID = Details.Produkt_ID)

INNER JOIN Produkt_Rubrik ON Produkt.Produkt_ID = Produkt_Rubrik.Produkt_ID)

INNER JOIN Rubrik ON Rubrik.Rubrik_ID = Produkt_Rubrik.Rubrik_ID

WHERE Rubrik.Beschreibung="Anleitung" AND Details.Beschreibung="toll";

er fängt bei der innersten Klammer an und arbeitetet sich nach aussen durch, dann kannst Du mit der Where Klausel ganz normal das Ergebnis einschränken.

Hoffe das hilft Dir weiter !

Gruß

Christian

------------------------------------------------------------

"All power corrupts. Absolute Power is kinda neat though..."

"50.000 gold a year in child care and they call it a CULT ?!?"

- Kel'Thuzad, Archlich

HI!

Hast Du eine Access DB?? Dann kannst Du Dir auch ganz einfach ein Abfrage machen, die in die SQL Ansicht schalten und voilà, schon hast Du Dein SQL mit all Deinen Joins.

Gruss

Super. Genau das wars. Hatte ich so in etwa auch. Nur hatte ich die Sch.. Klammern vergessen + verdrehter Join. Danke. Für alle die es interessiert hier der Quelltext ind Verbindung mit PHP.


$sql = "SELECT distinct(P.Produkt_ID),P.Beschreibung,P.Größe,P.Pfad FROM ((Produkt P
INNER JOIN Details D ON P.Produkt_ID = D.Produkt_ID)
INNER JOIN Produkt_Rubrik PR ON P.Produkt_ID = PR.Produkt_ID)
INNER JOIN Rubrik R ON R.Rubrik_ID = PR.Rubrik_ID
WHERE R.Rubrik_ID = "; //1 and D.Beschreibung = 'test'";

$sql .= $rubrik;

//wenn Suche ausgefüllt wurde
if (! (empty($suche)))
{
$sql .= " AND D.Beschreibung like '%";
$sql .= $suche;
$sql .= "%'";
}
[/PHP]

nicht schön aber es funktioniert.

Gruß UBAI - Kaum macht mans richtig, schon funktionierts !

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.