Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] MySQL Abfrage über 2 Tabellen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] MySQL Abfrage über 2 Tabellen

    Hallo!

    Folgendes SQL-Statement müsste ich abändern:

    Code:
    $sql="SELECT id, ort_name FROM orte WHERE active='1' ORDER BY ort_name";
    Es gibt noch eine 2te Tabelle namens "wirtschaft" in der sämtliche Firmen enthalten sind... in dieser Tabelle gibt es ein Feld namens "ort_id"...

    Die oben angführte Abfrage müsste jetzt so Abfrage das nur alle Orte aufscheinen welche auch mindestens einmal in der tabelle "wirtschaft" im Feld "ort_id" vorkommen...

    wie geht das? zur info orte.id == wirtschaft.ort_id

    thx!

    i_am

  • #2
    http://dev.mysql.com/doc/refman/4.1/en/join.html

    mit JOIN
    :arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]

    Kommentar


    • #3
      hallo dsmcg!

      vielen dank!

      ich habs jetzt so gemacht:

      Code:
      $sql="
                  SELECT 
                  orte.id, orte.ort_name, orte.active, 
                  wirtschaft.ort_id 
                  FROM orte 
                  LEFT JOIN wirtschaft ON orte.id=wirtschaft.ort_id 
                  WHERE orte.active='1' 
                  ORDER BY orte.ort_name";
      das problem ist allerding das jetzt nach wie vor alle orte erscheinen und von dem ort in welchen 3 firmen sind wird dieser ort 3 mal angezeigt...

      es sind derzeit 3 firmen im selben ort in der wirtschaftsdatenbank... es gibt in der orte tabelle allerdings meherere orte...

      es dürfte also nur ein ort in der abfrage aufscheinen... weisst du was ich falsch mache?

      thx!

      i_am

      Kommentar


      • #4
        Dafür gibt es das Schlüsselwort DISTINCT:
        Code:
        SELECT DISTINCT
            o.id,
            o.ort_name,
            o.active
        FROM
            orte AS o
        INNER JOIN
            wirtschaft AS w
        ON
            o.id = w.ort_id
        WHERE
            o.active = 1
        ORDER BY
            o.ort_name

        Kommentar


        • #5
          dankeschön!

          Kommentar

          Lädt...
          X