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
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.