mixmastertobsi: MySQL ABfrage JOIN LIMIT

Hallo, ich komme mal wieder bei eine Abfrage nicht weiter.

Ich habe folgende zwei Tabellen

anr    | artikel
----------------
1      | artikeltest
2      | artikeltest2

anr | attribut | preis
-----------------------
1   | gr1      | 99
1   | gr2      | 199
1   | gr3      | 249

Wie kann ich in einem JOIN sortieren und ein Limit setzen. Ich möchte, dass MySQL in der Tabelle attribut den niedrigsten Preis mit ausgibt.

SELECT artikel, preis FROM artikel JOIN attribut ON artikel_attribut.anr=artikel.anr WHERE artikel.anr='1'

  1. Hier gibt es 2 Lösungen, die beide über ein Subselect führen.

    1. Subselect in der Where-Bedingung des Joins
      Subselect, dass dir zuerst die ID deiner Attribut-Tabelle (ich hoffe doch dass es auch dort eine ID gibt) zu einer gegebenen Artikelnummer liefert, und zwar derart, dass Preis = minimal.

    2. Subselect als Spalte im Kopf der SQL-Abfrage
      Subselect, dass dir zu der gegebenen Artikelnummer DIREKT den kleinesten Preis liefert.

    lG,
    Gerhard

    1. Hallo, aber wie kann ich dann bei einer SUBQUERY die anr zuweisen?

      SO ?!? Geht nicht...

      SELECT * FROM artikel JOIN (SELECT anr,preis FROM attribut ORDER BY preis LIMIT 1) as a ON b.anr=artikel.anr WHERE artikel.anr='1'

      1. Hi,

        Hallo, aber wie kann ich dann bei einer SUBQUERY die anr zuweisen?

        Du extremst *fauler* *Sack*!
        Die Anzahl der Datenbank-Fragen, die du hier offenbar ohne irgendeine Ahnung von den simpelsten Dingen stellst, geht doch langsam auf keine Kuhhaut mehr ...

        Kannst du dir bitte endlich mal angewöhnen, ins Handbuch zu schauen, bevor du fragst?

        12.2.9.7. Correlated Subqueries:
        “A correlated subquery is a subquery that contains a reference to a table that also appears in the outer query.”

        RTFM, verflixt noch mal.

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?