---
title: "JOIN-hjälp."
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/53375-join-hjälp"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "nill"
published: "2002-09-16T14:11:34.000Z"
updated: "2003-02-16T18:10:56.000Z"
replies: 7
views: 320
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/53375-join-hjälp"
---

# JOIN-hjälp.

## #1 — nill, 2002-09-16T14:11Z

Jag tycks inte kunna lära mig det här med JOIN och sådant som hör till det så jag behöver hjälp igen.

Jag har en tabell, users. Den innehåller två kolumner ID och nick.
En annan tabell heter relationer och har två kolumner, person1 och person2.

I relationer lagras användernas (users) relationer. Alltså om en användare med ID = 1   känner en användare med ID = 4     så ser relationer-tabellen ut så här

person1      person2
    1                  4

eller 

person1      person2
    4                  1

min nuvarande kod ser ut så här. Men den är inte så bra eftersom användarnas namn inte kommer bokstavsordning.

				VarDammit = "SELECT relationer.person2, users.nick FROM relationer LEFT JOIN users ON relationer.person2 = users.ID WHERE relationer.person1 = " & Session("userID")
				RecSet.Open VarDammit, Connect, 3, 3

				Do Until RecSet.EOF
					
					Response.Write "\<OPTION VALUE=""" & RecSet("person2") & """\>" & RecSet("nick")

					RecSet.MoveNext
				Loop
				
				RecSet.Close

				VarDammit = "SELECT relationer.person1, users.nick FROM relationer LEFT JOIN users ON relationer.person1 = users.ID WHERE relationer.person2 = " & Session("userID")
				RecSet.Open VarDammit, Connect, 3, 3

				Do Until RecSet.EOF
					
					Response.Write "\<OPTION VALUE=""" & RecSet("person1") & """\>" & RecSet("nick")

					RecSet.MoveNext
				Loop
				
				RecSet.Close
				Set RecSet = Nothing
				Connect.Close
				Set Connect = Nothing
				%\>

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

## #2 — LarsG, 2002-09-16T16:16Z

```
q = "SELECT u1.nick as jag , u2.nick as kompis " & _
  "FROM (users u1 inner JOIN relationer r on u1.id = r.person1) " & _
  "inner join users u2 on r.person2 = u2.id " & _
  "WHERE u1.id = " & Session("userID") & " " & _ 
  "union SELECT u2.nick as jag , u1.nick as kompis " & _
  "FROM (users u1 inner JOIN relationer r on u1.id = r.person1) " & _
  "inner join users u2 on r.person2 = u2.id " & _
  "WHERE u2.id = " & Session("userID") & " " & _
  "order by 2"
```

är kanske den fråga du vill ha.

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

## #3 — nill, 2002-09-16T20:11Z

det verkar vara mycket bättre kod, tack. Då den är lite väl komplex för mig (förstår ingenting)  förstår jag inte hur jag ändrar den så den passar mig exakt.
"Kompisarnas" nick skriver jag ju ut med RecSet("kompis").. så mycket förstår jag.  RecSet("jag") behöver jag inte. Men däremot behöver jag "kompisarnas" ID, inte bara deras nick.

Hur gör jag det?

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

## #4 — LarsG, 2002-09-16T20:32Z

```
q = "SELECT u2.id , u2.nick as kompis " & _
  "FROM (users u1 inner JOIN relationer r on u1.id = r.person1) " & _
  "inner join users u2 on r.person2 = u2.id " & _
  "WHERE u1.id = " & Session("userID") & " " & _ 
  "union SELECT u1.id, u1.nick as kompis " & _
  "FROM (users u1 inner JOIN relationer r on u1.id = r.person1) " & _
  "inner join users u2 on r.person2 = u2.id " & _
  "WHERE u2.id = " & Session("userID") & " " & _
  "order by 2"
```

Lite förklaring av frågan: Union innebär att man slår ihop resultatet av två frågor till ett. Den första frågan tar fram de personer som Session("userID") har som kompis och den andra tar fram de som har Session("userID") som kompis.

Då detta inte är relaterat till ASP så flyttar jag frågan till SQL

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

## #5 — nill, 2003-01-20T00:21Z

Hur ser ovanstående kod ut i mySQL?

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

## #6 — nill, 2003-01-20T15:50Z

UNION verkar ju inte fungera i mySQL \< 4  så fick lösa det med att addera två arrayer. 
Stötte på ett annat problem. 
Har även en kolumn i tabellen users som heter 'gang'.  Den har ett idnummer till en annan tabell som heter gang. Skulle vilja ha gangnamn och gangid från varje "kompis" också.

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

## #7 — LarsG, 2003-01-21T18:13Z

```
q = "SELECT u2.id , u2.nick as  kompis , gang.gangnamn, gang.gangid " & _
  "FROM users u1 inner JOIN relationer r " & _
" on u1.id = r.person1 " & _
" inner join users u2 on r.person2 = u2.id " & _
" inner join gang on u2.gang = gang.gangid " & _ 
  "WHERE u1.id = " & Session("userID") & "
```

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

## #8 — nill, 2003-02-16T18:10Z

Skulle vilja slippa detta med att addera två arrayer nu. Hur kan jag göra union-frågan med ovanstående "gang"-funktion också i  MySQL \< 4 ?

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/53375-join-hjälp
