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?
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
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);
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 :/
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?
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?
266 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849