php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.11.2006, 21:36  
Erfahrener Benutzer
 
Registriert seit: 29.08.2003
Beiträge: 216
wurtzel
Standard select mit inhalten aus mehreren Tabellen

ich habe 3 ( Firmen, Gruppen, Mitarbeiter) tabellen die nach folgendem Muster aufgebaut sind
ID , Name, Vorname, Strasse, ....

und eine tabelle aktionen
AID
Utyp ENUM('F','G','M') // Angabe welche der obrigen Tabellen zugeordnet ist
Uid // Id in der obrigen Tabelle


Nun möchte ich eine Ausgabe

AID, Utyp, Name, Vorname, Strasse


Code:
select 
AId,
Utyp,
if(a.Utyp='M',(select m.name from mitarbeiter m where m.ID=a.Uid),
if(a.Utyp='F' , (select f.name from firmen f where f.ID=a.Uid),
if(a.eUtyp='G',(select g.name from gruppen g where g.ID=a.Uid))))
as name,
if(a.Utyp='M',(select m.vorname from mitarbeiter m where m.ID=a.Uid),
if(a.Utyp='F',(select f.vorname from firmen f where f.ID=a.Uid),
if(a.eUtyp='G',(select g.vorname from gruppen g where g.ID=a.Uid))))
as vorname
if(a.Utyp='M',(select m.strasse from mitarbeiter m where m.ID=a.Uid),
if(a.Utyp='F',(select f.strasse from firmen f where f.ID=a.Uid),
if(a.eUtyp='G',(select g.strasse from gruppen g where g.ID=a.Uid))))
as strasse
from aktionen
gibt es eine möglichkeit die Abfrage nach name, vorname, strasse
in einer subquery zusammen zufassen
__________________
Das Problem ist der Anfang einer Lösung
wurtzel ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.11.2006, 23:24  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Ich verstehe weder den Sinn noch den Aufbau, aber wenn alle 3 Tabellen den selben Inhalt haben, wäre es eine Überlegung wert, einfach alle Datensätze auch eben in die selbe Tabelle zu packen und zur Unterscheidung eben ein extra Spalte einzuführen.

Code:
id, type (ENUM), name, vorname, strasse
Zergling-new ist offline   Mit Zitat antworten
Alt 01.12.2006, 00:45  
Erfahrener Benutzer
 
Registriert seit: 29.08.2003
Beiträge: 216
wurtzel
Standard

diese tabellen stimmen nur in einem kleinen teil von der struktur her überein
und stammen aus verschiedenen Teilprojekten damit es nicht ausufert hab ich mich auf die 4 spalten die in den tabellen abgefragt wedren beschränkt

mir gehts um die verbesserung der sql abfrage da ich es für nicht sinvoll halte 3 mal die selbe abfrage hintereinander zu tätigen, wenn es auch ein mal geht
__________________
Das Problem ist der Anfang einer Lösung
wurtzel ist offline   Mit Zitat antworten
Alt 01.12.2006, 13:13  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Lass sowas. Wenn sich die Struktur unterscheidet, dann verwende pro Tabelle auch einen eigenen SELECT.
Zergling-new ist offline   Mit Zitat antworten
Alt 02.12.2006, 03:32  
Erfahrener Benutzer
 
Registriert seit: 29.08.2003
Beiträge: 216
wurtzel
Standard

das kann ja jeder

es ist nur manchmal einfacher einen Komplexen select zu schreiben als umständlich über umwege dies im Programm zu realisieren

der obrige select ist eine starke vereinfachung des eigentlichen bei mir verwendeten selects
__________________
Das Problem ist der Anfang einer Lösung
wurtzel ist offline   Mit Zitat antworten
Alt 02.12.2006, 11:31  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Ich versteh immer noch nicht, warum du alles mit einem SELECT handhaben willst.

Was hast du vor?
Was spricht gegen 3 SELECTs, wenn die Tabellen nunmal unterschiedlich sind?

Komplexität ist kein Argument für einen gesammelten SELECT, sondern dagegen.
Zergling-new ist offline   Mit Zitat antworten
Alt 02.12.2006, 17:37  
Erfahrener Benutzer
 
Registriert seit: 29.08.2003
Beiträge: 216
wurtzel
Standard

Dein vorschlag war diese Daten in eine Tabelle zu bringen

dieser select kann dies zum beispiel tun und dabei noch filterregeln beachten

was in der db wesentlich schneller geht als diese relativ umständlich in php zu programmieren


mir gehts in diesem fall eher darum die 9 subselects auf 3 zu reduzieren
__________________
Das Problem ist der Anfang einer Lösung
wurtzel ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
löschen in mehreren Tabellen maeck Datenbanken 5 10.07.2008 23:19
SELECT über zwei Tabellen KingCrunch Datenbanken 9 23.03.2007 04:01
[Erledigt] SELECT aus zwei "gleichen" Tabellen patr1k Datenbanken 2 05.07.2006 11:57
Bestimmte ID in mehreren Tabellen suchen Dummy2006 PHP Tipps 2006 10 01.06.2006 21:54
Select über 2 Tabellen MasterMind Datenbanken 11 08.04.2006 11:43
Select über mehrere tabellen Sclot Datenbanken 14 24.11.2005 16:56
Daten aus mehreren Tabellen holen Datenbanken 0 19.09.2005 17:14
[Erledigt] SELECT * FROM 2 Tabellen - Problem Datenbanken 1 01.09.2005 16:30
[Erledigt] MySQL Abfrage aus mehreren Tabellen Datenbanken 1 12.04.2005 17:53
[Erledigt] Suche mit mehreren unterschiedlichen Tabellen Datenbanken 9 31.12.2004 17:39
[Erledigt] Löschen in mehreren Tabellen gleichzeitig Datenbanken 2 05.12.2004 00:43
[Erledigt] Selectanfrage an eine Datenbank,aber aus mehreren Tabellen Datenbanken 2 26.10.2004 07:23
[Erledigt] INSERT INTO SELECT an mehrere Tabellen? Datenbanken 6 17.09.2004 16:57
[Erledigt] Join für Select Count(`id`)-Abfrage über 4 Tabellen Datenbanken 4 10.07.2004 18:32
letztes Datum aus mehreren Tabellen wizzardxx PHP Tipps 2004 6 05.07.2004 23:18

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
select mit mehreren tabellen, select aus mehreren tabellen, select from aus verschiedenen tabellen, select from mit mehreren tabellen, php programmierung select aus mehreren tabellen, select (*) from mehreren tabellen, inhalt mehrerer tabellen in eine, selbes datum in mehreren tabellen, select über 2 tabellen if, select benchmark oracle statement

Alle Zeitangaben in WEZ +1. Es ist jetzt 14:56 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.