Announcement

Collapse
No announcement yet.

join mit nur einen Datensatz

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • join mit nur einen Datensatz

    Hallöchen und guten Abend,

    gibt es in Firebird die Möglichkeit wenn ich 2 Tabellen verbinden (left Join) das ich immer nur den ersten Datensatz erhalte.

    Beispiel
    select * from Tabelle1 t1
    left join Tabelle2 t2 on t1.index=t2.index
    so erhalte ich mehrere Datensätze. Abhängig von der Anzahl in Tabelle 2
    (brauche aber nur den ersten von Tabelle2)

    Ich würde dies so brauchen
    select from Tabelle1 t1
    left (First 1) join Tabelle2 t2 on t1.index=t2.index

    gibt es hier eine Möglichkeit.
    Danke Oswald

  • #2
    Such mal in der Firebird-SQL-Hilfe nach. Entweder ist es ein Top am Anfang (SELECT TOP 1 * FROM ...) oder ein Limit am Ende (SELECT * FROM ... LIMIT 1).

    Comment


    • #3
      Hallo Bernhard,
      Limit gibt es in Firebird leider nicht.
      Zumindest habe ich es nicht gefunden.

      Aber ab Version 2 kann man den Distinct-Befehl in Joins verwenden.
      Beispiel:
      select * from Tabelle1 t1
      left join Tabelle2 t2 on t1.index is distinct from t2.index

      In Tabelle2 gibt es ein eindeutiges ID-Feld. Und bis ich auf Version 2 umstelle habe ich es mal so gelöst.
      select * from Tabelle1 t1
      left join Tabelle2 t2 on t1.index = t2.index
      and t2.id = (select min(tm.id) from Tabelle2 tm where tm.index=T2.index)

      Danke
      Oswald

      Comment


      • #4
        Eine Limitierung in FireBird funktioniert entweder mit der eigenen Variante FIRST/SKIP oder per InterBase-Syntax ROWS

        Comment


        • #5
          Hallo Markus,
          First/Skip habe ich schon gefunden.
          Funktioniert bei normalen Statements einwandfrei, nur bei Join ist es mir nicht gelungen.

          Danke Oswald

          Comment

          Working...
          X