---
title: "Lista frågor & svar med ev. följdfrågor"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/156824-lista-frågor-svar-med-ev-följdfrågor"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "doggelito"
published: "2007-02-05T14:19:38.000Z"
updated: "2007-02-06T13:43:22.000Z"
replies: 2
views: 212
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/156824-lista-frågor-svar-med-ev-följdfrågor"
---

# Lista frågor & svar med ev. följdfrågor

## #1 — doggelito, 2007-02-05T14:19Z

Har stött på patrull!
Fakta:
Två tabeller: Frågor och svar.
En fråga har x antal svar.
Ett svar kan ha följdfråga som i sin tur har x antal svar.

Jag tänkte att en CTE skulle passa för ändamålet men kommer inte på hur det skulle kunna se ut.
Har kommit så här långt:

```
WITH CTE_Questions
AS
(
	SELECT q.QuestionId, q.ParentId, q.Question, a.AnswerId, a.Answer
	FROM Booking_Scenarios_QuestionsTmp q
	INNER JOIN Booking_Scenarios_AnswersTmp a ON q.QuestionId = a.QuestionId
	WHERE q.ParentId IS NULL

	UNION ALL
	SELECT q.QuestionId, q.ParentId, q.Question, a.AnswerId, a.Answer
	FROM Booking_Scenarios_QuestionsTmp q
	INNER JOIN Booking_Scenarios_AnswersTmp a ON q.QuestionId = a.QuestionId
	INNER JOIN CTE_Questions cte ON a.AnswerId = cte.ParentId
)
SELECT * FROM CTE_Questions
```

De kolumner som är intressanta är QuestionId, ParentId samt AnswerId.
q.ParentId relaterar till a.AnswerId, dvs. om ParentId inte är null så är det en följfråga till ett svar.

Koden ovan listar nu bara frågor och svar där ParentId är null, dvs. huvudfrågor. Inga följdfrågor listas.
Mao. all kod under UNION ALL körs ej då ParentId i koden ovan alltid är null!

Nån som kan trasla ut härvan? :)

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

## #2 — doggelito, 2007-02-06T10:29Z

Hmm, jag får fan inte till det.
Skulle verkligen behöva en hjälpande hand! :)

Ni behöver inte låsa upp er på en CTE, det kanske inte är vägen att gå.

Resultatet ska t.ex. bli så här:

```
Fråga 1
	Svar 1.1
	Svar 1.2
			Fråga 1.2
				Svar 1.2.1
				Svar 1.2.2
				Svar 1.2.3
	Svar 1.3

Fråga 2
	Svar 2.1
	Svar 2.2
	
	
Ihopdraget skulle det se ut så här:

Fråga 1
Svar 1.1
Svar 1.2
Fråga 1.2
Svar 1.2.1
Svar 1.2.2
Svar 1.2.3
Svar 1.3
Fråga 2
Svar 2.1
Svar 2.2
```

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

## #3 — doggelito, 2007-02-06T13:43Z

Jag fyller väl på med info till nån vänlig själ kommer med en lösning! :)

Jag har nu ritat om databasen lite, flyttat Parentid från Questiontabell till Answertabellen istället.
Jag tror att det är mer logiskt (men ej säker), så här ser databasen ut nu och svaret jag vill få ut.
Så det är alltså en skön selectsats jag behöver (troligtvis en cte)!

```
Questions
---------------------------------------------------------------
QuestionId      Question
1                   Fråga 1
2                   Fråga 2
3                   Fråga 1.1

Answers
---------------------------------------------------------------
AnswerId         QuestionId   Answer          ChildId
1                   1                Svar 1           null
2                   1                Svar 2           3
3                   1                Svar 3           null
4                   3                Svar 1.1         null
5                   3                Svar 1.2         null

Fråga 1
		Svar 1
		Svar 2
			Fråga 1.1
				Svar 1.1
				Svar 1.2
		Svar 3
		
Fråga 2
```

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/156824-lista-frågor-svar-med-ev-följdfrågor
