Announcement

Collapse
No announcement yet.

LinQ über 2 Tabellen

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

  • LinQ über 2 Tabellen

    Ich versucher gerade folgenden SQL Befehl in Linq übersetzt zu bekommen:

    Code:
     SELECT * FROM tabelle1, tabelle2 WHERE tabelle1.feld != tabelle2.feld;
    Heute ist echt Freitag, ich stell mich an wie der erste Mensch...

    Jeder Vorschlag ist willkommen

    Vielen Dank im Voraus,

    HairyP

  • #2
    Hallo,

    obwohl das SQL schon fragwürdig ist, kann das so (in etwa) übersetzt werden. Für den * gibts in LinQ keine Entsprechung, aber mit einem anonymen Typen kann das hingezaubert werden.
    [highlight=c#]
    var query = from t1 in tabelle1
    from t2 in tabelle2
    where t1.feld != t2.feld
    select new {a = t1, b = t2 };
    [/highlight]


    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Das hier funktioniert auch:

      Code:
       from c in tabelle1 where (from p in tabelle2 select p.wert).FirstOrDefault() != c.wert select c;
      Was ist am SQL fragwürdig? Ist das nicht ein ganz normaler Query?

      Comment


      • #4
        Ist das nicht ein ganz normaler Query?
        Sich alle Spalten aus beiden Tabellen geben lassen sicher nicht. Und eine Ungleichbedingung ist auch eher selten.

        Dein Linq Ausdruck macht eigentlich auch was völlig anderes als der von GÜ außer deine Tabelle2 enthält nie mehr als einen Datensatz.

        Comment


        • #5
          Das originale SQL Query dürfte ziemlich viele Zeilen liefern. Es findet ein normales kartesisches Produkt statt, danach werden nur die Zeilen herausgenommen die denselben Wert in "feld" haben. Ob das natürlich Sinn macht musst Du entscheiden

          Comment

          Working...
          X