Søge på tværs af tabeller

Tags:    mysql php

Hej udviklere,

Normalt har jeg godt styr på MySql, men denne gang må jeg bøje mig i støvet, for nu sidder jeg fast!

Jeg har to tabeller som begge indeholder nyheder, men ikke af helt samme struktur eller egentlig sammenhæng bortset fra to felter: month og year.

Det jeg har brug for er, at kunne udskrive indholdet af disse to tabeller således, at de sorteres efter dato (der er et felt til år og et felt til måned). Tabellerne skal altså flettes.

Hvis jeg nu f.eks. har følgende:

Tabel1:
Test-nyhed, 2012, 7
Test2-nyhed, 2012, 8

Tabel2:
Test3-nyhed, 2012, 6
Test4-nyhed, 2012, 7
Test5-nyhed, 2012, 8
Test6-nyhed, 2012, 9

Jeg vil således gerne have dem som følger:

Test3-nyhed
Test-nyhed
Test4-nyhed
Test2-nyhed
Test5-nyhed
Test6-nyhed

Det er fuld bevidst, at elementer fra Tabel1 skal komme før elementer fra Tabel2, hvis disse har samme år og måned.

Håber nogen kan hjælpe :-)



8 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 7 karma
Sorter efter stemmer Sorter efter dato
Fold kodeboks ind/udSQL kode 


Distinct info



Fold kodeboks ind/udSQL kode 


Er det ikke bare noget i stil med dette? :)



Fold kodeboks ind/udSQL kode 


Er det ikke bare noget i stil med dette? :)


Jeg har lige forsøgt, men det giver ikke det ønskede resultat.

Lige nu har jeg ikke megen info i databasen, men i Tabel1 har jeg 2 indlæg og i Tabel2 har jeg ét indlæg. Indlægget fra Tabel2 kommer dog med ud to gange, en for hver af indlæggene i Tabel1, hvilket ikke er hvad jeg ønskede.



Jeg ville gætte på noget lign. det her :)
Fold kodeboks ind/udSQL kode 




Problemet ved begge forslag er det samme - at den henter en række mere end en gang.

Her er de eksakte data jeg arbejder med:

Newsletter (tabel):
Fold kodeboks ind/udKode 


CompanyNewsletter (tabel):
Fold kodeboks ind/udKode 


Mit output ved at køre begge jeres forslag er som følger:

Fold kodeboks ind/udKode 




Ville der være noget problem ved, at klare det med en UNION:
Fold kodeboks ind/udSQL kode 




Problemet er, at uanset hvilken metode jeg anvender, så får jeg ikke flettet tabellerne som jeg gerne vil. Alle de nævnte metoder giver enten et komplet udtræk fra den ene tabel efterfulgt af et komplet udtræk fra den anden tabel eller et kombineret udtræk med nogle uheldige dubletter, hvilket ikke er ønsket.

Jeg besluttede mig for at lave det om, så jeg kører hentningen af de to helt separat.



Jan: Nu brugte jeg en anden løsning, men kan se at din ville have klaret jobbet for mig! ;)



t