php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 2 Stimmen, 5,00 durchschnittlich.
Alt 02.10.2008, 16:17  
Neuer Benutzer
 
Registriert seit: 13.08.2008
Beiträge: 12
familyman befindet sich auf einem aufstrebenden Ast
Standard MySQL UNION ALL mit LEFT JOIN?

Hi,

ich will zwecks Sortierung der Ergebnisse ein UNION ALL in folgenden SELECT-String einbauen:
Code:
SELECT
ba.id, ba.answersets, ba.strat_count, ba.strategy, ba.basics,
ba.morphology, ba.syntax, ba.selection, ba.polysemy, ba.discontinuous, 
ba.researcher, 
br.region, br.subregion, br.group_wals, br.subgroup_wals, br.quality, 
br.number, br.sample49plus1, 
bw.region, bw.subregion, bw.group_wals, bw.subgroup_wals, bw.quality, 
bw.number, bw.sample55  
FROM 
bursas AS ba 
LEFT JOIN bursareal AS br ON (br.id=ba.id) 
LEFT JOIN burswals AS bw ON (bw.id=ba.id) 
WHERE bw.sample55='X' AND br.sample49plus1='X'
Mir ist soweit klar, dass ich für alle Spalten, die ich vereinheitlichen will, ein Alias vergeben muss (also z.B.
Code:
SELECT region AS areal FROM bw
UNION ALL
SELECT region AS areal FROM br
), auch wenn ich noch nicht genau weiß, wie genau das geschehen muss, und ob beide Tabellen komplett parallel aufgebaut sein müssen.

Die wichtigste Frage ist: an welcher Stelle käme in meinem String das UNION ALL-Statement (ich will nur die Spalten aus bw und br vereinheitlichen...).

Vielen Dank!
familyman ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 06.10.2008, 09:41  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Aus der Anzahl an Antworten wirst du gemerkt haben, dass niemand deine Frage verstanden hat. Vielleicht versuchst du mal verständlich darzustellen, was du erreichen möchtest.
Nur einfach mal soviel: UNION hat normalerweise nichts direkt mit der Sortierung zu tun.
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 06.10.2008, 15:12  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.266
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Code:
SELECT
u.id
-- ..
FROM
(
SELECT * FROM bw
UNION ALL
SELECT * FROM br
-- UNION ALL
-- SELECT ..
) as u -- union
Das ganze kannst du auch in einen VIEW stecken, einfach "CREATE VIEW v_regionen AS " vor dein Statement setzen. Danach kannst du auf "v_regionen" wie eine Tabelle zugreifen. Im VIEW solltest du dann keine ORDER BY Statements verwenden. Wie die Ausgabe aussieht entscheidet das direkte SELECT auf den VIEW, andernfalls sortierst du moeglicherweise doppelt.


Du solltest dir grundsaetzlich auch mal ueberlegen, ob es Sinn macht, Datensaetze des selben Typs in verschiedene Tabellen zu stopfen.
Chriz ist offline   Mit Zitat antworten
Alt 08.10.2008, 11:25  
Neuer Benutzer
 
Registriert seit: 13.08.2008
Beiträge: 12
familyman befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Chriz Beitrag anzeigen
Code:
SELECT
u.id
-- ..
FROM
(
SELECT * FROM bw
UNION ALL
SELECT * FROM br
-- UNION ALL
-- SELECT ..
) as u -- union
Das ganze kannst du auch in einen VIEW stecken, einfach "CREATE VIEW v_regionen AS " vor dein Statement setzen. Danach kannst du auf "v_regionen" wie eine Tabelle zugreifen. Im VIEW solltest du dann keine ORDER BY Statements verwenden. Wie die Ausgabe aussieht entscheidet das direkte SELECT auf den VIEW, andernfalls sortierst du moeglicherweise doppelt.


Du solltest dir grundsaetzlich auch mal ueberlegen, ob es Sinn macht, Datensaetze des selben Typs in verschiedene Tabellen zu stopfen.
Danke, ich werd's mal ausprobieren.

Zur Tabellenproblematik: ich habe keinenfalls Datensätze des gleichen Typs einfach in zwei Tabellen untergebracht. Vielmehr ist es Teil des Datenbankdesigns (es geht hier um zwei verschiedene Samples (Teilmengen) der Haupttabelle, in denen noch weitere Infos untergebracht sind. Nun will ich aber in einer der Abfragen Infos aus beiden Tabellen haben, diese aber nach "über"-tabellarischen Kriterien sortieren. Daher muss ich (?) die Namen der Spalten vereinheitlicht sortieren...

Die Frage der Sortierung ist dann u.U. vielleicht auch nur eine Frage der Reihenfolge der Sortierungsargumente, aber ich hab's bis jetzt nicht hingekriegt...

Grüße & Danke
fm
familyman ist offline   Mit Zitat antworten
Alt 09.10.2008, 12:15  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.266
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Kann dir nicht folgen.
Chriz 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
Ein kleines Join Problem (MySQL) susi85 Datenbanken 12 12.12.2007 20:00
WHERE-Clause im Left Join cycap Datenbanken 2 06.11.2007 11:06
JOIN / LEFT JOIN und Co prinzli Datenbanken 12 05.11.2007 22:15
LEFT OUTER JOIN auf Nicht-Tabelle inu Datenbanken 15 29.03.2007 20:21
[solved] LEFT JOIN - #1066 - Not unique table/alias moose Datenbanken 6 12.12.2006 06:41
[gelöst] LEFT JOIN und trotzdem nicht alle Sätze da?!? stefanjann Datenbanken 3 24.10.2006 11:32
Left outer join, timestamps php-newbie83 Datenbanken 29 27.04.2006 09:29
LEFT OUTER JOIN für mehr als 2 Tabellen ? Alpha Centauri Datenbanken 4 05.04.2006 16:18
MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
Select Problem Datenbanken 17 16.01.2006 21:54
[Erledigt] LEFT JOIN Query Bildung Datenbanken 6 04.11.2005 15:24
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
[Erledigt] LEFT JOIN Problem Datenbanken 11 21.03.2005 16:36
[Erledigt] left outer join mit bedingung Datenbanken 2 04.03.2005 00:52
den letzte(grösten) eintrag aus LEFT JOIN Datenbanken 2 24.07.2004 18:33

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql union, mysql union join, mysql union all, php mysql union, union join, mysql join, mysql join union, union mysql, union all mysql, http://www.php.de/datenbanken/47840-mysql-union-all-mit-left-join.html, mysql left join union, left join mysql, mysql union php, mysql left join, join union, left join union, union join mysql, union all join, union und join, mysql union left join

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:34 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