---
title: "Select distinct och resten?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/127209-select-distinct-och-resten"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "pettsson"
published: "2005-04-27T11:30:55.000Z"
updated: "2005-04-27T14:46:56.000Z"
replies: 10
views: 363
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/127209-select-distinct-och-resten"
---

# Select distinct och resten?

## #1 — pettsson, 2005-04-27T11:30Z

Jag har en databas (MySQL) som innehåller testloggar av kretskort i olika versioner. Jag vill välja ut den senaste versionen av alla kort med hjälp av kolumnen HardwarePartNo, men samtidigt visa den information som finns i alla andra kolumner. Jag prövade med

```
SELECT DISTINCT HardwarePartNo, [alla andra kolumner] FROM board_test ORDER BY BoardName DESC
```

Men då får jag ändå med tidigare revisioner av korten. Om jag utesluter \[alla andra kolumner\] i koden och gör ORDER BY HardwarePartNo så funkar det, men då får jag ju inte med all annan information. Prövade också med pusslande av div. förklaringar i tutorials osv, men kom inte längre för det. Hur ska jag göra?

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

## #2 — LarsG, 2005-04-27T12:01Z

```
SELECT HardwarePartNo, [alla andra kolumner] 
FROM board_test bt
where HardwarePartNo in(
select max(HardWarePartNo)
from board_test
where BoardName = bt.board_name)
ORDER BY BoardName DESC
```

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

## #3 — pettsson, 2005-04-27T12:20Z

Får "not valid result resource" när jag kör den satsen. Såhär har jag satt in den:

```
$list = "SELECT HardwarePartNo, BoardName, BoardSerialNo, HardwareRevision, FirmwareRevision, MachineNo FROM board_test bt
WHERE HardwarePartNo IN(SELECT MAX(HardWarePartNo) FROM board_test WHERE BoardName = bt.board_name) ORDER BY HardwarePartNo DESC";
$result = mysql_query($list);
```

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

## #4 — @nders, 2005-04-27T12:21Z

Vilken version av MySQL använder du?

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

## #5 — pettsson, 2005-04-27T12:25Z

4\.1.11

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

## #6 — LarsG, 2005-04-27T12:27Z

Lite felhantering skadar inte

```php
$result = mysql_query($list) or die(mysql_error());
```

Annars så ser jag att jag skrev fel på ett kolumnnamn

```
WHERE BoardName = bt.board_name)
```

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

## #7 — pettsson, 2005-04-27T12:41Z

Hur menar du att du skrev fel? Den kod du skriver i senaste inlägget är identisk med den som du  skrev i det första. Ersatte bt.board_name med bt.BoardName som experiment, och nu går det inte att stänga av IE:n som tuggar den sidan, verkar ha kommit in i nån evig loop :/

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

## #8 — @nders, 2005-04-27T12:42Z

Du kanske har lite mer kod att visa då?

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

## #9 — pettsson, 2005-04-27T12:49Z

Jovisst

```
function ListAll_Test($orderby, $orderad) {
$connection = mysql_connect("localhost", "", "********")
 or die("Database error: Could not connect to database");
$mydb = "pcblog";
mysql_select_db($mydb)
 or die("Database error: Could not open database");
$list = "SELECT * FROM board_test bt WHERE HardwarePartNo IN(SELECT MAX(HardWarePartNo) FROM board_test WHERE BoardName = bt.BoardName) ORDER BY HardwarePartNo DESC";

$result = mysql_query($list) or
 die("Database error: " . mysql_error());
while($row = mysql_fetch_array($result)) {
 print "<tr><td>";
 print $row["BoardName"] . "</td><td>";
 print $row["BoardSerialNo"] . "</td><td>";
 print $row["HardwarePartNo"] . "</td><td>";
 print $row["FirmwareRevision"] . "</td><td>";
 print $row["HardwareRevision"] . "</td><td>";
 print $row["MachineNo"] . "</td></tr>";
}
mysql_close($connection);
}
```

$orderby och $orderad styr vilken kolumn det ska sorteras efter, men de används inte just nu.

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

## #10 — pettsson, 2005-04-27T13:35Z

Om jag kör max(HardwarePartNo) så får jag tillbaka -834966956, lite underligt... Fältet är av typen unsigned int, största värde är 3460000340, största tillåtna värde är 4294967295. Varför blir det det svaret på max?

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

## #11 — pettsson, 2005-04-27T14:46Z

Förenklade frågan och visar med detaljerad information på en annan sida. Nu har jag

```
SELECT DISTINCT HardwarePartNo, BoardName FROM board_test ORDER BY HardwarePartNo DESC
```

Detta ger nästan rätt... Jag har bla. en artikelgrupp med partno 501066001, denna innehåller 19 stycken kretsvarianter, varav en stavades fel när den lades in. Då kommer 501066001 upp två gånger, en för varje namnvariant. Borde inte DISTINCT sortera bort även den då den används på HardwarePartNo?

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/127209-select-distinct-och-resten
