undso: Datenbankabfrage mit verschiedener Länge

Hallo Forum,
ich hatte vor einigen Tagen zwar ein Thema gestartet wegen der Strukturierung der Tabellen, da ich nun gerade ein Verständnisproblem bei der Abfrage für die neue Struktur habe, finde ich, dass ein neuer Thread wahrscheinlich ermessen ist und nicht als Doppelposting markiert wird.

Nun zu meiner Frage:

Bisher hatten wir eine einzige Tabelle wo alle Userdaten, Profilangaben uvm. angelegt waren. (ca. 200 Spalten)

Sachen die ich selten nutze oder abfrage, habe ich in neuen Extratabellen angelegt. Bsp. Profilangaben oder die Singleanzeige.

Da jetzt früher alles in einer Tabelle drin war, konnte ich im Profil einen Datensatz abfragen und alle Spalten in ein Array rein laden. Wenn eine Spalte nicht ausgefüllt war, hätte ich ein leeres Arrayfeld.

Bsp. SELECT userid, username, , geburtsdatum, geschlecht, hobbies, sprachkenntnisse, lieblinksfilm FROM Usertabelle WHERE userid=12345

So konnte ich dann direkt die einzelnen Arrayfelder nach der Reihe ausgeben.

Profil von <%= array1 %>
 HTML Code
 Meine Hobbies <%= array4 %>
 (Ggf. könnte ich prüfen ob "array4" leer ist und das ganze ausblenden)

Nun habe ich so Profilangaben wie: Hobbies, Nationalität und Lieblingsfilm in eine zweite Tabelle (Userprofile) ausgelagert, da ich diese Angaben selten (Bzw. nur im Profil brauche)

Mit einem JOIN stellt die Abfrage auch kein Problem dar. Beim Registrieren lege ich in beide Tabellen (Usertabelle und Userprofile) eine Zeile an. (Die Profilangaben sind dann beim registrieren eben leer)

Nun habe ich im Forum einen Tipp erhalten, das ganze zu normalisieren. Ich muss zwar einige Profilangaben dennoch als Freitexteingabe für das Mitglied lassen, doch ein paar Sachen könnte ich wie folgt machen:

Tabelle: Sprackkentnisse
SprachID Sprachen
1  Deutsch
2  Englisch
3  Italienisch

Tabelle: Sprachzuordnung
UserID SprachID
12345  1
12345  3

Meine dumme Frage nun, wie ich das ganze nun geschickt auslesen soll, da in der Tabelle "Sprachzuordnung" entweder gar kein Eintrag vorhanden sein könnte oder mehrere. (Es verschiebt sich das ganze Array und ich wüsste nicht, welches Array nun was ist?) Sollte keine Sprachzuordnung vorhanden sein, müsste ich das prüfen können und evtl. auf der Profilseite "Keine Kenntnisse" ausgeben.

Grüße ;)