webForumDet fria alternativet
Logga in / Bli medlem

koppla samma men ändå inte

Databaser & SQL

3 svar · 156 visningar · startad av arvjos

Medlem sedan juni 2002129 inlägg
Trådstart#1

Hejsan

Har två tabeller. En som är kalender med olika händelser. I kolumnen name där finns ett id som pekar på en aktivitet som ligger i en annan tabell. Det kan oxå stå någon text i namn istället och då är det en fri aktivitet som inte finns i aktivitetstabellen.

Jag kör med följande rad:

SELECT city_activities.name FROM calendar, city_activities WHERE calendar.name = city_activities.id

Jag får då bara de som har ett id och de som har någon annan text struntar han i.

Hur ska jag göra för att han ska visa allt? Men han ska självklart visa det riktiga namnet på de aktiviteter som bara har ett id och inte text

Tack

Medlem sedan dec. 200012 464 inlägg
#2
SELECT city_activities.name 
FROM calendar left outer join 
 city_activities 
on calendar.name = city_activities.id

Jag tycker inte att det är någon bra design

Medlem sedan juni 2002129 inlägg
#3

hur ska jag ha det istället då?

Medlem sedan dec. 200012 464 inlägg
#4

Det jag ogillar är att du använder ett fält till två saker.

Om det inte finns någon aktivitet så lagra null i name istället. Om du vill ha lösa aktiviteter så lagra dessa i en egen kolumn och inte i name.

275 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)