webForumDet fria alternativet

Knepigt SELECT-uttryck

Databaser & SQL

2 svar · 237 visningar · startad av Peter_B

Medlem sedan apr. 2000642 inlägg
Frågan#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!

------------------
PeterSign v 2.3.36

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!

------------------
PeterSign v 2.3.36

264 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
135 ms — ändringar (db)