Jörg Reinholz: MYSQL Abfragen verknüpfen

Beitrag lesen

Beispiel Abfragen:

SELECT

typ, hersteller, nummer, datum
FROM
  tl_typ
WHERE
  typ = 'Auto'
AND
  hersteller = 'Audi'
ORDER BY nummer DESC LIMIT 10

SELECT
  typ, hersteller, nummer, datum
FROM
  tl_typ
WHERE
  typ = 'Auto'
AND
  hersteller = 'BWM'
ORDER BY nummer DESC LIMIT 10

SELECT
  typ, hersteller, nummer, datum
FROM
  tl_typ
WHERE
  typ = 'Auto'
AND
  hersteller = 'VW'
ORDER BY nummer DESC LIMIT 10

  
  

> Wäre schön wenn mir jemand erklären könnte. Wie diese Abfragen verknüpfen kann.  
  
Für mich sieht das aus, als suchst Du nach "oder"  
  
~~~sql
SELECT  
  typ, hersteller, nummer, datum  
FROM  
  tl_typ  
WHERE  
  typ = 'Auto'  
  AND (  
       hersteller = 'VW'  
     OR  
       hersteller = 'AUDI'  
     OR  
        hersteller = 'AUDI'  
   )  
ORDER BY nummer DESC LIMIT 10;

Falls Du aber je Hersteller 10 Autos suchst, dann könnte man auch UNION hantieren. UNION wird verwendet, um das Ergebnis einer Anzahl von SELECT-Anweisungen zu einer Ergebnismenge zusammenzufassen.

(SELECT  
  typ, hersteller, nummer, datum  
FROM  
  tl_typ  
WHERE  
  typ = 'Auto'  
AND  
  hersteller = 'Audi'  
LIMIT 10)  
  
UNION  
  
(SELECT  
  typ, hersteller, nummer, datum  
FROM  
  tl_typ  
WHERE  
  typ = 'Auto'  
AND  
  hersteller = 'BWM'  
LIMIT 10)  
  
UNION  
  
(SELECT  
  typ, hersteller, nummer, datum  
FROM  
  tl_typ  
WHERE  
  typ = 'Auto'  
AND  
  hersteller = 'VW'  
LIMIT 10)  
  
ORDER BY hersteller, nummer DESC

Was davon richtig ist hängt von Deinen Vorstellungen ab, die ich nicht komplett ergründen kann.

Jörg Reinholz