php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.06.2007, 20:46  
Erfahrener Benutzer
 
Registriert seit: 29.09.2004
Beiträge: 106
becks123
Standard [MATCH...AGAINST] mit mehreren Tabellen und Datensätzen?

Servus Leute,

habe z.B. folgende Tabellenstruktur:

Tabelle 1 `user`:

Id
username

Tabelle 2 `universities`:

Id
university

Tabelle 3 `user_universities`:

Id
user_id
university_id


Über die `user_universities` Tabelle verbinde ich die Tabelle 1 und 2, da jeder User an mehreren Universitäten gewesen sein kann.

Nun möchte ich z.B. alle User finden, die an meiner Universität XYZ und meiner Universität ABC waren.

Wie mache ich das am geeignetsten mit einem MATCH...AGAINST? Oder gehts auch ander mit einem query?

Danke!
becks123 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 15.06.2007, 21:02  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Mit MATCH AGAINST machst du nur Volltextsuchen, das heißt der Suche nach Texten. Du kannst ja aber einfach nach IDs suchen.

Wenn du alle Studenten der Universitäten XYZ und ABC finden möchtest musst du lediglich JOINs anwenden.
Zergling-new ist offline   Mit Zitat antworten
Alt 17.06.2007, 19:46  
Erfahrener Benutzer
 
Registriert seit: 29.09.2004
Beiträge: 106
becks123
Standard

Ich habs mit JOIN versucht, klappt auch soweit, bis ich versuche zu groupieren mittels GROUP BY... dann schmiert alles ab.

In meiner Universitäten Tabelle sind ca. 131.000 Datensätze. Ist das damit noch möglich?

Gruß
becks123 ist offline   Mit Zitat antworten
Alt 17.06.2007, 20:44  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Bitte Forenregeln lesen:
http://www.phpfriend.de/forum/ftopic57083.html
Zitat:
[..] Fehlerbeschreibungen wie "geht nicht" ohne Begründung sind keine Informationen, die uns interessieren oder weiterhelfen, um euch zu helfen.
Dazu zählt auch
Zitat:
dann schmiert alles ab.
Das kann ja alles mögliche sein, Query fehlerhaft, Server am abrauchen, ..
Selbst dann fehlt der entsprechende Query und die Error-Logs des Servers. Eventuell offene Prozesse etc.


Zitat:
Zitat von becks123
In meiner Universitäten Tabelle sind ca. 131.000 Datensätze. Ist das damit noch möglich?
Wenn Indexe gesetzt sind (alle bei ON, WHERE und GROUP BY beteiligten Spalten), sollte auch das überhaupt kein Problem sein.
Zergling-new ist offline   Mit Zitat antworten
Alt 18.06.2007, 10:12  
Erfahrener Benutzer
 
Registriert seit: 29.09.2004
Beiträge: 106
becks123
Standard

Ich finde das meine Aussage wie die Faust auf's Auge passt

Habe die Felder jetzt mal mit einem Index belegt. Jetzt dauert es "nur" noch 7 Sekunden. Geht's noch schneller?
becks123 ist offline   Mit Zitat antworten
Alt 18.06.2007, 13:46  
Erfahrener Benutzer
 
Registriert seit: 17.01.2006
Beiträge: 468
Slava
Standard

7 Sekunden ist eine Evigkeit für nur 131.000 Datensätze.
Bevor die Tabellenstruktur als auch die Abfragen unbekannt sind, kann man hier nur spekulieren oder ein mitleid aussprechen.
__________________
Slava
http://bituniverse.com
Slava ist offline   Mit Zitat antworten
Alt 20.06.2007, 12:17  
Erfahrener Benutzer
 
Registriert seit: 29.09.2004
Beiträge: 106
becks123
Standard

Die Tabellenstruktur ist so, wie ich sie oben beschrieben haben.

Es gibt eine Tabelle "user", eine Tabelle "university". Die Tabelle "user" ist über eine n:m Beziehung mit der Tabelle "university" verbunden. Das heißt, ich habe eine Tabelle "visiteduniversities" eingefügt, die jeweils einen Datensatz von "user" mit einem von "university" verbindet (n:m halt).

Nun möchte ich einen SQL Query haben, der mir alle User liefert, die auf den gleichen Universitäten (mindestens eine) waren wie ich.

Wenn ich z.B. auf der Universität X und Universität Y war, dann möchte ich alle user haben, die nur auf der Universität X waren oder nur auf der Universität Y, oder auf beiden.
becks123 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
Zeilen aus mehreren Tabellen löschn mit Bezug auf eine Table Riks Datenbanken 3 25.02.2007 20:17
select mit inhalten aus mehreren Tabellen wurtzel Datenbanken 6 02.12.2006 17:37
Bestimmte ID in mehreren Tabellen suchen Dummy2006 PHP Tipps 2006 10 01.06.2006 21:54
Aus mehreren Tabellen (Foren) den Top User ermitteln wizzardxx PHP Tipps 2006 9 15.02.2006 10:39
[Erledigt] Daten aus mehreren Tabellen holen Datenbanken 0 19.09.2005 17:14
[Erledigt] werte aus mehreren tabellen auslesen Datenbanken 5 18.09.2005 13:45
[Erledigt] MySQL Abfrage aus mehreren Tabellen Datenbanken 1 12.04.2005 17:53
Abfrage aus mehreren Tabellen msdose Datenbanken 6 17.03.2005 10:25
mysql update query mit mehreren Tabellen funktioniert nicht PHP-Fortgeschrittene 5 08.01.2005 16:29
[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
Daten in mehreren Tabellen abspeichern duerov PHP Tipps 2004 1 23.09.2004 14:14
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
mysql match mehrere tabellen, mysql match against über mehrere tabellen, sql match against mehrere werte, match against mehrere tabellen, match against mit mehreren tabellen, sql matchingtabelle, match against in zwei tabellen, php mehrere match against, mysql against zwei tabellen, sql match zwei tabellen abfragen, match against 2 tabellen, match against über mehr tabellen, php sql match against, mysql match against 2 tabellen, mysql match against mehrere tabellen, match against (\' \\\, sql match zwei tabellen nur ein datensatz, against mehrere, php matching tabelle, match again mehrere tabellen

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