---
title: "Markera sedda filmer i samma lista"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/178542-markera-sedda-filmer-i-samma-lista"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Sasch"
published: "2009-05-14T19:09:40.000Z"
updated: "2009-05-14T20:25:06.000Z"
replies: 3
views: 546
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/178542-markera-sedda-filmer-i-samma-lista"
---

# Markera sedda filmer i samma lista

## #1 — Sasch, 2009-05-14T19:09Z

Tänkte loopa ut en lista med saker som folk borde läsa/se/göra. Problemet blir att få SQL-satsen att markera gjorda saker.

```
 Movie
 ID  | MovieTitle | ReleaseYear
 int | VarChar    | int

 MovieSeen
 MovieID | UserID | (seen)
  int    | int    | int (1/0)
```

(Japp, det ska bli multianvändarvänligt)

```
  SELECT ID, Movietitle, ReleaseYear
  FROM movie
  ORDER BY MovieTitle
```

Enkelt så här långt.

```
SELECT ID, Movietitle, ReleaseYear, MovieSeen.Seen
FROM Movie JOIN Movieseen ON (Movie.Id = MovieSeen.MovieId)
WHERE UserID = "& identid &"
```

Tanken med ovanstående join är rätt (Om man nu bara vill lista de filmer man sett). Problematiken med ovanstående join är ju bara att den loopar ut de jag har sett. Har jag inte sett några får jag inte ut någon.
Det jag vill göra är alltså att lista alla filmer som jag ska se, och sedan få ut en "1/0" som jag sedan kan rödmarkera filmerna som jag sett i samma lista.

> **exempel skrev:**
>
> Terminator: Salvation (2009)
>  The Sixth Sense (1999) --- Seen
>  Finding Nemo (2003) --- Seen

Ska jag kanske beblanda mig med en INNER JOIN istället?

Permalänk: https://www.webforum.nu/p/178542

## #2 — Peter S, 2009-05-14T19:31Z

```
SELECT ID, Movietitle, ReleaseYear, MovieSeen.Seen, CASE WHEN MovieSeen.MoveId IS NULL THEN 'Not seen' ELSE 'Seen' END AS isSeen
FROM Movie LEFT JOIN Movieseen ON (Movie.Id = MovieSeen.MovieId)
AND UserID = "& identid &"
```

Ovanstående syntax är för (åtminstone) MSSQL och MySQL.

Fältet 'seen' behöver du inte ha med. Det räcker med att användaren finns i tabellen MovieSeen för att denne skall ha sett filmen.

Permalänk: https://www.webforum.nu/p/2184892

## #3 — Sasch, 2009-05-14T20:18Z

YES! Det funkar alldeles utmärkt! Tack :)

Permalänk: https://www.webforum.nu/p/2184897

## #4 — Compusa, 2009-05-14T20:25Z

> **[Sasch skrev:](https://www.webforum.nu/p/1467880)**
>
> Ska jag kanske beblanda mig med en INNER JOIN istället?

Det var INNER JOIN som du använde. Skriver man bara JOIN så är det samma sak som INNER JOIN.

Permalänk: https://www.webforum.nu/p/2184898

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/178542-markera-sedda-filmer-i-samma-lista
