Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] welches SQL JOIN und wie geht das?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] welches SQL JOIN und wie geht das?

    hey ich hab eine habwegs normalisierte db die folgendermaßen ausschaut:

    Student:
    IDs
    Benutzname
    Passwort

    Talente:
    ID
    IDs
    Talent
    Kenntnis

    Sprachen
    ID
    IDs
    Sprache
    Kentnis

    Bildung:
    ID
    IDs
    UNIart
    UNIname

    Recht simpel eigentlich. Bei Bildung und Student besteht sicher nur eine 1:1 beziehung. jedoch sprache und talende können mehrere vorhanden sein also 1:n (wenn ich das richtig verstanden habe).

    mt den selectbefehl und right join gehts ned, dieser liefert aber nur ein talent und eine sprache wieder. gegeben sind sicher jeweils min 2:
    PHP-Code:
    SELECT FROM studenten LEFT JOIN (bildungsprachentalenteON studenten.Benutzername '".$log['username']."' AND studenten.IDs bildung.IDs AND studenten.IDs talente.IDs AND studenten.IDs sprachen.IDs 
    in sqlkenn ich mich nur sehr wenig aus. wär schön wenn mir da jemand helfen könnt.

    lg tee

  • #2
    Zitat von teewurst Beitrag anzeigen
    hey ich hab eine habwegs normalisierte db die folgendermaßen ausschaut:

    Student:
    IDs
    Benutzname
    Passwort

    Talente:
    ID
    IDs
    Talent
    Kenntnis

    Sprachen
    ID
    IDs
    Sprache
    Kentnis

    Bildung:
    ID
    IDs
    UNIart
    UNIname

    .....

    jedoch sprache und talende können mehrere vorhanden sein also 1:n (wenn ich das richtig verstanden habe)...
    kurz zum normalisieren:
    ein student - mehrere sprachen
    eine sprache - mehrere studenten
    n:m und zwischentabelle

    ein student - mehrere talente
    ein talent - mehrere studenten
    n:m und zwischentabelle

    ....

    Kommentar


    • #3
      naja schon aber ich habe das extra so gewählt weil ich in absehbarer zeit dieses system nicht mehr verwalten werde,, jedoch die nachfolger noch viel leihenhafter als ich sind

      mit zwischentabelle meinste sichern
      Sprachen_user_id:
      ID
      IDs
      IDsprache
      IDkenntnis

      Wobei es
      Studenten, Sprachen, und Sprachen_user_id
      gibt

      deine antwort hilft mir aber nicht weiter da ich den join befehlt brauche. trotzdem vielen dank (auch zu deiner antwort wüsste ich nicht wie ich richtig abfrage)
      kennt jemand anderes die antwort?

      Kommentar


      • #4
        Wenn du Laien daran setzen willst, ist es mit Sicherheit die beste Idee, irgendein gefuckeltes System rein zu klatschen und auf Standards zu verzichten. Das begreifen Laien am Besten. UND man kann es auch super nachlesen und lernen!

        Kommentar


        • #5
          ich bin für jeden vorschlag offen. an was hast du da gedacht?
          aber trotzdem rein hypothetisch wie ist die JION abfrage? und wie is die joinabfrage für dein beispiel?
          es fehlt mir am verständnis und die erklärungen im inet sind nicht zu kompliziert nur komm ich mit der anwendung ned klar...
          man betrachtet mengen R/{-} und deren schnittmengen.
          mit join verbindet man diese mengen
          mir is grad gekommen das abbildungen so definiert sind das M keine zwei werte in N haben darf.
          dh
          IDs Name -> ID (IDs gekürzt) Sprache Kenntnis
          1 Hans + 1 Englisch 2
          aber mehr geht nicht in diese richtung
          brauche ich eine zweite abfrage?
          ich brauche ein ergebnis das ca so aussieht:
          IDs Name -> ID (IDs gekürzt) Sprache Kenntnis
          1 hans 1 Englisch 2
          N N 2 Spanisch 3
          N N 3 Deutsch 1

          (das ganze kann falsch sein... ich habe es nur so verstanden)
          das sind zumindestens die daten die ich benötge

          Kommentar


          • #6
            Ich habe an das gedacht, was elise in #2 schon vorgeschlagen hat, was du ja nicht willst.

            Kommentar


            • #7
              also ich bin grad auch mit ner mysql datenbank beschäftigt und hab das problem das ich nicht weiss wie ich das ergebniss ausgeben kann.

              Hier ist der query den ich benutze, hilft dir vielleicht weiter:

              SELECT F.fservernaam, R.racknaam, K.klantnummer
              FROM fysiekeserver F, racks R, klanten K
              WHERE F.fsrackid = R.rackid AND F.fsklantid = K.klantid

              nur hab ich das problem das ich mit fetch row oder fetch array das nicht mehr abfragen kann. Bei einfachen querys funzt des ohne probleme
              while($row = mysql_fetch_array($result))
              {
              echo $row['fservernaam'];
              }

              Kommentar

              Lädt...
              X