Knepigt SELECT-uttryck

Databaser & SQL

2 svar · 261 visningar · startad av Peter_B

Medlem sedan apr. 2000642 inlägg
Trådstart#1

Nu blir det svårt.

det är så att jag ahr två tabeller, "verksamheter" och "platser".

i "verksamheter" finns det en kolumn som heter "plats", dvs en verksamhet kan peka på en plats. i "verksamheter" finns även kolumnen "kategori".

tanken är nu att lista alla platser där det finns verksamheter i flera olika kategorier.. det går om man bara har en kategori, såhär:

SELECT DISTINCT p.id, p.namn FROM platser AS p, verksamheter AS v WHERE v.plats=p.id AND v.kategori=19;

detta listar alla platser som har en verksamhet i sig som har kategori 19. so far so good.

nu börjar det jobbiga.. om man vill att platsen ska innehålla två verksamheter med olika kategorier?

SELECT DISTINCT p.id, p.namn FROM platser AS p, verksamheter AS v WHERE v.plats=p.id AND v.kategori=19 AND v.kategori=18;

går ju ej. v.kategori är ju inte både 18 och 19 för samma verksamhet. hur göra detta? måste jag först plocka ut alla platser och sen kolla plats för plats om det finns verksamheter så det räcker? hemskt.. det blir ju ett helt uttryck per plats ju...

tacksam för hjälp!

Medlem sedan dec. 19996 721 inlägg
#2

SELECT DISTINCT p.id, p.namn FROM platser AS p, verksamheter AS v, verksamheter AS v2 WHERE v.plats=p.id AND v2.plats=p.id AND v.kategori=19 AND v2.kategori=18;

Medlem sedan apr. 2000642 inlägg
#3

ah! så enkelt? wünderbart! tack tack!

249 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)