Nur eine Spalte joinen?
Mystikal
- datenbank
Tach
Gibt es in MySQL eine Möglichkeit bei einem JOIN nicht gleich die ganze Zeile einer anderen Tabelle anzufügen, sondern nur ein Feld?
Dass zum Beispiel nur das Feld 'username' angefügt wird und nicht die ganze Zeile.
Das würde der Datenbank ja sicher extrem viel Zeit und Arbeit ersparen, oder?
Ich habe mir die JOINs in der Doku wirklich angesehen, aber große Unterschiede zwischen den ganzen (LEFT, RIGHT, INNER, OUTER,... JOIN) konnte ich wikrlich nicht feststellen.
Vielleicht kann mir auch jemand eine Seite, die das wirklich erklärt geben, bzw. mir das kurz erklären.
Danke schon jetzt an alle, die sich mir mir abgeben :)
Hallo,
Gibt es in MySQL eine Möglichkeit bei einem JOIN nicht gleich die ganze Zeile einer anderen Tabelle anzufügen, sondern nur ein Feld?
Einen Join kannst Du nur mit (mindestens) zwei Tabellen realisieren. Du kannst selbstverständlich angeben _welche_ Spalten der jeweiligen Tabellen im Ergebnis ausgegeben werden sollen. Vermeide einfach das 'select *'.
Das würde der Datenbank ja sicher extrem viel Zeit und Arbeit ersparen, oder?
Das kannst Du durch ein geschicktes Verwenden von Indizes erreichen.
Sehr viel Wissenswertes dazu findest Du in der Dokumentation, im speziellen Kapitel 5 (http://www.mysql.com/doc/en/MySQL_Optimisation.html)
Grüße
Klaus
Hallo,
Gruss
Gibt es in MySQL eine Möglichkeit bei einem JOIN nicht gleich die ganze Zeile einer anderen Tabelle anzufügen, sondern nur ein Feld?
Jo siehe unten.
Einen Join kannst Du nur mit (mindestens) zwei Tabellen realisieren. Du kannst selbstverständlich angeben _welche_ Spalten der jeweiligen Tabellen im Ergebnis ausgegeben werden sollen. Vermeide einfach das 'select *'.
Geht auch nur mit einer tabelle man kann auch die selbe tabelle nochmal "joinen".
Ich bring dir mal nen beispiel, hat mir damals auch sehr geholfen.
tbl1
| id | foo |
+----------+
| 4 | bar |
tbl2
| pid | name |
+------------------+
| 4 | Mr. FooBar |
SELECT b.name
FROM tbl1 AS a
LEFT OUTER JOIN tbl2 AS b
ON b.pid = a.id
WHERE a.id = '1'
Ergebniss:
| name |
+------------+
| Mr. FooBar |
ob das jetzt genau hinhaut weis ich nicht, kam "On the Fly aus meinem Hirn" sollte aber verdeutlichen wies funzt
Hoffe das hilft dir
Analpha