cybton.com
Über uns | Jobs | Werbung | Sitemap | AGB | Impressum | Hilfe ?
 Kostenlos anmelden)
Forum
Aktuellste Beiträge
Forenregeln

Community
BB-Codes
Tags
Chat
Suche (Web)
Wer ist online?
Top-User

Basar


Statistik
Mitglieder gesamt: 68142
Mitglieder online: 1
Gäste online: 1
mehr...

Anzeige
Forum » Forum: Website & Webprogrammierung » Thread: Mysql zwei Tabellen verbinden

Thread: Mysql zwei Tabellen verbinden

Tags: MySQL , join , verbinden

27.02.2008 15:35 Uhr

 

o
Status: offline
Hi,
nun habe ich schon wieder eine Frage, doch wer nicht fragt, wird nicht schlauer. Es geht um das sehr beliebte Thema (irgendwie suche ich mir wohl nur Klassiker raus) der zwei zu verbindenden Tabellen.
In der Theorie werden zwei IDs übergeben. Eine für die News und eine für die Kategorie (ja, es soll so sein, dass es auch doppelte IDs für die News gibt, also nur die Kategorie über die erscheinende News entscheidet.
Bisher realisiere ich das über zwei Abfragen, dennoch frage ich mich, ob das ganze nicht schneller geht, wenn man die Tabellen verbindet, zumal es ja einfacher zu handeln ist.
Bisher sieht die Abfrage so aus:
PHP:
1
2
3
$result = mysql_query("SELECT id, title, data FROM kategorie WHERE id = '".mysql_real_escape_string($_GET['kid'])."' LIMIT 1") or die(mysql_error());
$rows = mysql_fetch_array($result);
$result = mysql_query("SELECT title, content, date FROM news WHERE id = '".mysql_real_escape_string($_GET['id'])."' AND source = '".mysql_real_escape_string($rows['id'])."' LIMIT 1") or die(mysql_error());
Nun versuche ich die beiden Tabellen zu verbinden. Ist dies sinnvoll? Sollte ich bei der alten Lösung bleiben, oder es doch ganz anders machen? Reicht für meine Anwendung ein Join, oder muss es ein Left Join sein?
Ich möchte keine komplette Lösung, doch erschlägt mich die Dokumentation. Kennt jemand ein einfaches, verständliches Einstiegsonlinewerk?

Danke
27.02.2008 17:50 Uhr

 

zombie3456
Programmierer
Status: offline
Zitat:
Reicht für meine Anwendung ein Join, oder muss es ein Left Join sein?

Naja, JOIN verlangt zwingend, dass in beiden Tabellen passende Werte stehen, die du im ON-Teil definierst, wohingegen LEFT JOIN auch Daten aus der linken (also erstgenannten) Tabelle ausliest, die in der rechten (also zweitgenannten) Tabelle keinen passenden Partner haben.

http://www.little-idiot.de/mysql/mysql-118.html
Das ist vielleicht einfacher, so wie du es suchst. Ich habe JOIN auch erst damit gelernt  :glad: 

Deine Abfrage könnte eventuell so aussehen:
mysql:
1
2
3
4
5
6
SELECT a.`title`, a.`content`, a.`date`, b.`title` AS cat_title, b.`data`
FROM `news` AS a
JOIN `kategorie` AS b
ON a.`source` = b.`id`
WHERE a.`id` = [id kommt hier]
AND b.`id` = [kid kommt hier]
Diese Abfrage würde dafür sorgen, dass nur Einträge ausgelesen werden, die einer Kategorie zugeordnet sind.
Sollen auch Einträge gefunden werden, welche ohne Kategorie in der Datenbank stehen, dann kannst du das mit LEFT JOIN lösen:
mysql:
1
2
3
4
5
SELECT a.`title`, a.`content`, a.`date`, b.`title` AS cat_title, b.`data`
FROM `news` AS a
LEFT JOIN `kategorie` AS b
ON a.`source` = b.`id` AND b.`id` = [kid kommt hier]
WHERE a.`id` = [id kommt hier]
Ich glaube, dass es so gehen müsste... Das b.id = [kid] muss diesmal in den ON-Teil, weil es im WHERE-Teil immer ausgeführt werden würde und LEFT keinen Einfluss hätte.

Kann natürlich sein, dass ich etwas falsch gelesen habe, einen groben Denkfehler hatte oder sonst einen Fehler gemacht habe.
___________________________
DURATIVUM | Blog zur Sprache Latein
27.02.2008 20:41 Uhr

 

o
Status: offline
Für Fehler haftet keiner, dennoch schonmal Danke. Werde mich damit am Wochenende dann mal genauer beschäftigen. Dennoch sind weitere schöne Anleitungen oder Beispiele erwünscht. =)
Ähnliche Threads Forum Ähnlichkeitsgrad
 view oder join Website & Webprogrammierung 2
 [gelöst] Problem mit MySQL LEFT JOIN Website & Webprogrammierung 2
 [gelöst] Fragen bezüglich MySQL Website & Webprogrammierung 1
 MYSQL Abfrage (Zählen auf Gleiche Spalten) Website & Webprogrammierung 1
 FTP wo und wie? Fragen zu cybton.com 1
 [Problem] MySQL mehrere Einträge gleichzeitig verändern geht nicht Website & Webprogrammierung 1
 MySQL nur für Localhost Software & Betriebssysteme 1
nach obennach oben

Copyright © 2008 cybton-network

Google
Partner: #Musik - Dein Internetradio - nexem. - .wir machen news - Your-Book.net - Dein kostenloses Gästebuch
ANEXIA - PHP Entwicklung - Dockers - s.Oliver Schuhe - Think Schuhe - der eigene Weg - Dorfen - Paul Green Schuhe - Bequeme Geox - Web-Entwicklung