AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Optimierung / Erweiterung
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Optimierung / Erweiterung

Ein Thema von manfred_h · begonnen am 1. Feb 2010 · letzter Beitrag vom 18. Feb 2010
 
manfred_h

Registriert seit: 4. Nov 2005
Ort: Basel
442 Beiträge
 
Delphi XE2 Enterprise
 
#1

SQL Optimierung / Erweiterung

  Alt 1. Feb 2010, 15:39
Datenbank: MySQL • Version: 5.0.85-community • Zugriff über: copycat
Hallo zusammen

für die Benutzerauthentifizierung auf dem MySQL Server verwende ich folgende funktionierenden SQL:
SQL-Code:
( MEMBER_GROUP = 'ADMIN')
OR (( MEMBER_GROUP = 'CAMP') AND (CONDITION_VALUE = NEW.C_NO))
OR (NEW.C_NO IN (SELECT RPL$GROUPS_RIGHTS.CAMP_NO
    FROM RPL$GROUPS JOIN RPL$GROUPS_RIGHTS ON RPL$GROUPS_RIGHTS.GROUP_NO = RPL$GROUPS.GROUP_NO
    WHERE RPL$GROUPS.GROUP_NO = MEMBER_GROUP))
diesen möchte ich nun ein wenig erweitern / um die Abfrage von 2 Tabellen ungefähr so:
SQL-Code:
( MEMBER_GROUP = 'ADMIN')
OR (( MEMBER_GROUP = 'CAMP')
      AND (CONDITION_VALUE = NEW.C_NO)
      AND (NEW.SERVICE_NAME IN (SELECT RPL$SERVICE_TABLES.TABLE_NAME
           FROM RPL$SERVICE JOIN RPL$SERVICE_TABLES ON RPL$SERVICE_TABLES.SERVICE_NAME = RPL$SERVICE.SERVICE_NAME
           WHERE RPL$SERVICE.SERVICE_NAME LIKE SERVICE))
    )
OR (NEW.C_NO IN (SELECT RPL$GROUPS_RIGHTS.CAMP_NO
    FROM RPL$GROUPS JOIN RPL$GROUPS_RIGHTS ON RPL$GROUPS_RIGHTS.GROUP_NO = RPL$GROUPS.GROUP_NO
    WHERE RPL$GROUPS.GROUP_NO = MEMBER_GROUP)
    AND (NEW.SERVICE_NAME IN (SELECT RPL$SERVICE_TABLES.TABLE_NAME
           FROM RPL$SERVICE JOIN RPL$SERVICE_TABLES ON RPL$SERVICE_TABLES.SERVICE_NAME = RPL$SERVICE.SERVICE_NAME
           WHERE RPL$SERVICE.SERVICE_NAME LIKE NEW.SERVICE)))
    )
Die 2 Tabellen sind:
RPL$SERVICE
Felder: SERVICE_NAME
RPL$SERVICE_TABLES
Felder: SERVICE_NAME / TABLE_NAME

Ein Problem ist dass ich in der aktuellen Tabelle ein Feld ( NEW.SERVICE )habe das mehrere Werte beinhalten kann.
( z.B Hotel / Altersheim ... ) Es soll nun geprüft werden ob in RPL$SERVICE.SERVICE_NAME ein Wert vorhanden ist
der im Feld NEW.SERVICE auftaucht ( Es können auch mehrere sein ).

Wie kann ich auf diese in dieser SQL zugreifen?
Wenn Ihr noch Tipps für die Optimierung oder Vereinfachung habt bin ich dankbar.
Hoffe ich konnte die Frage verständlich erläutern.

Manfred
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz