27. juni 2009 - 23:21
Der er
1 kommentar og
1 løsning
Udtræk fra 2 tabeller i mysql
Hej eksperter,
Jeg har to tabeller i mysql der ser ud på følgende måde:
Tabel1: id | navn | dato
Tabel2: id | navn | fodt | dato
Nu vil jeg gerne vise en list af navne fra begge tabeller, som er sorteret efter dato.
Jeg har prøvet: "SELECT * FROM Tabel1,Tabel2 ORDER by dato" Det virker desværre ikke.
Nogen der har en ide?
Mvh.
Peter Jensen
Hvordan vil du vise dem?
Du skal nok have fat i noget LEFT JOIN - eller også skal navnene have nogle ens id'er, hvis de høre sammen og det er derfor du vil trække ud fra begge tabeller..
Eller også skal du lave to SELECT * FROM osv..
Sig til hvis jeg helt har misforstået??
Vil gerne hjælpe..
Hvis du bare vil have en liste med alle navnene i de to tabeller, uden at der er en relation imellem én af deres kolonner, kan du bruge UNION:
SELECT id, navn, dato FROM Table1 UNION SELECT id, navn, dato FROM Table2;
og hvis du vil sortere efter dato tror jeg vi er ude i en enkelt subquery:
SELECT * FROM (SELECT id, navn, dato FROM Table1 UNION SELECT id, navn, dato FROM Table2) as tmp ORDER BY tmp.dato;
Vær opmærksom på at UNION kun vælger unikke rækker, så hvis du har en række i Table1 med præcis samme id, navn og dato som en række i Table2, vil der kun blive vist én række. Er det et problem i dit tilfælde, kan du evt. løse det ved at inkludere tabelnavnet i din query:
SELECT * FROM (SELECT 'Table1' as tbl, id, navn, dato FROM Table1 UNION SELECT 'Table2' as tbl, id, navn, dato FROM Table2) as tmp ORDER BY tmp.dato;
hvilket sikkert kan gøres lidt smartere, men det virker fint til at få alle rækker med :)