"Jens Gyldenkærne Clausen" <jens@gyros.invalid> skrev i en meddelelse 
news:Xns98E575729C2EAjcdmfdk@gyrosmod.cybercity.dk...
> EnjoyNews skrev:
>
>> Jeg har så også et firma table som er magen til.
>
> Har du overvejet at have firmaer og kunder samme sted? (evt. med et
> felt til at angive om de er firmaer, kunder eller måske begge dele)
>
> Tabeller der er helt eller næsten ens, kan være tegn på uheldigt
> design.
Er de så ikke sværere at sammenligne hvis de ligger i samme table ??
>
>> Jeg kan godt matche de 2 lokations filtre sådan her:
>> SELECT * FROM KFilterLokation kfl LEFT JOIN FFilterLokation
>> ffl ON (kfl.LokationFilterID = ffl.LokationFilterID)
>
> Hvorfor bruger du LEFT i stedet for INNER join? Du er vel kun
> interesseret i par der passer.
Ja det er en fejl.. Der skulle have stået INNER JOIN 
>
>> Dette kan jeg selvfølgelig også med Type filtret...
>> Men... Det jeg gerne vil er at finde dem der matcher begge
>> filtre med en eller flere match fra både Lokation og Type.
>
> Et skud fra hoften:
>
> SELECT *
> FROM KFilterLokation kfl INNER JOIN FFilterLokation ffl
> ON kfl.LokationFilterID = ffl.LokationFilterID
> INNER JOIN KFilterType kft ON kfl.firmaID = kft.firmaID
> INNER JOIN FFilterType fft ON ktf.TypeFilterID = fft.TypeFilterID
>
>
> Pointen er at lave et join mellem dine to filter-joins - baseret på
> firmaID som bindeleddet.
Det virker ikke helt... Den lægger lokationerne sammen som den skal, og 
laver man så et INNER JOIN til type tablen virker det også, og det er kun 
kundes type valg der vises.
Men laver man så det sidste INNER JOIN for at sammenligne med det andet type 
filter tilføjer den nogle der passer type mæssigt sammen men ikke passer 
lokations mæssigt..
Og det er lige netop det jeg bare ikke på nogen måde kan få den til at lave 
anderledes...
Jeg har også prøvet at lave ét table med både kundes lokation og type valg 
og ligeledes ét table til firmaets lokation og type valg... Men dem kan jeg 
heller ikke få til at sætte sig rigtigt sammen...
Jeg har lavet en meget simpel table med 2 kunder der har valgt:
Lokation 1   og type 4,5
Lokation 1,2 og type 4
Og så en simpel firma table med 3 firmaer der har valgt:
Lokation 1   og type 4,5
Lokation 1,2 og type 4
Lokation 2   og type 5
Ingen af de to kunder burde blive paret med firma 3 da kunde 1 ikke matcher 
på lokation og kunde 2 ikke passer med type...
Men ligemeget hvad jeg gør, så er firma 3 at finde i listen når man får 
join'et alle 4 tables (kunde lokation, firma lokation, kunde type og firma 
type)
Det er så her mine grå hår ikke rigtig vil forsvinde, og det er bare så 
irreterende at går rundt med sådan et problem i hovedet hele dagen lang 
>
> I praksis vil et join til firma- og kundetabellerne nok også skulle
> lægges på - og evt. med en DISTINCT eller GROUP BY til at fjerne
> overflødige informationer.
Ja det er klart... jeg skal bare lige have det til at virke først..
>
> NB: Hvilken database benytter du?
Det er en MySQL database.