sql = "insert into installningar (kolumn) select max(id) from gastbok"
connect.execute sql,,128
------------------
essentitia preter non sans multiplicandum
21 svar · 282 visningar · startad av ampy
Hur hämtar man max ID ur en tabell och lägger sedan till det i en annan tabell, hur ska koden se ut.
Den första tabellen heter gastbok och där id ska läggas till heter installningar.
------------------
Ampy.cjb.net
sql = "insert into installningar (kolumn) select max(id) from gastbok"
connect.execute sql,,128
------------------
essentitia preter non sans multiplicandum
Hej, om id är en räknare och du menar högsta värdet borde detta funka:
sql ="SELECT max(id) FROM t ORDER BY id DESC"
set rs = conn.execute(sql)
dim lngId
lngId = rs(0)
Sedan gör du bara en insert av variabel lngId i den tabellen du vill ha det i.
mvh Jörgen :)
------------------
Varför bråka när man kan kramas?
Varför kan du inte använda den kod jag skrev? Det är mindre kod, färre databasanrop och därmed mer än dubbelt så snabbt som jorgens alternativ.
Om du envisas så
sql = "insert into installningar(kolumn) values (" & lngId & ")"
connect.execute sql,,128
------------------
essentitia preter non sans multiplicandum
Jag tog din kod Lars G (högst upp), men när jag skriver det får jag detta felmeddelande:
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Du försöker tilldela Null-värdet till en variabel som inte är av datatypen Variant.
------------------
Ampy.cjb.net
Då kommer du nog att få samma fel med det andra alternativet.
Det låter som om att du har kolumner i tabellen installningar som inte tillåter null. Dvs, du måste ge dessa ett värde när du gör insert.
------------------
essentitia preter non sans multiplicandum
Jag fixade det och det blir inget felmeddelande. Men när jag sedan öppnar databasen och kollar i tabellen installningar så har det fylls i en post men i kolumnen id är det tomt. Varför??
------------------
Ampy.cjb.net
Finns det någon post i tabellen gastbok?
------------------
essentitia preter non sans multiplicandum
Jag kom på en sak, jag hade angivit fel tabell, det ska vara users istället för gastbook, gastbook hade inga poster så det var därför. Allt funkar som det ska nu. Tack så mycket LarsG
------------------
Ampy.cjb.net
Hej!
Använd LarsG:s kod, som sagt så är den snabbare och bättre. Jag är så van att inte kunna använda subquerys i mysql. Hade jag kört access hade jag kört LarsG:s alternativ. Hoppas det fungerar nu :)
mvh Jörgen
------------------
Varför bråka när man kan kramas?
Ahh, tack LarsG, då kan jag optimera en hel del :)
Räknas inte det till subquerys, för denna påhittade tex fungerar ju inte:
SQL = "SELECT * FROM table WHERE Id = 1 (SELECT namn FROM table WHERE namn = 'jorgen')"
Är det bara mellan 2 SELECT det inte fungerar, eller hur är det?
mvh Jörgen :)
------------------
Varför bråka när man kan kramas?
Tydligen inte enligt Mysql's definition.
Det Mysql inte har stöd för är att man använder en select i ett where villkor, oavsett om det är select/update/delete
Om jag modifierar din fråga lite så är det ett exempel på en fråga som inte stöds av mysql.
SQL = "SELECT * FROM table WHERE namn = (SELECT namn FROM table WHERE namn = 'jorgen')"
------------------
essentitia preter non sans multiplicandum
fel av mig ... alldeles för trött ... go'natt ....
PatrikB
[Redigerat av PatrikB den 02 dec 2001]
Kan man göra lika dant med en update?
Jag provade, typ så här:
sql = "update Inlagg set AntalSvar = "& intAntalSvar &" select count " & _
" (Thread_MessId) as intAntalSvar from Inlagg where Thread_MessId = " & _
" " & Request.Querystring("OrgId")
objDB.execute sql,,128
men lyckades inget vidare, provade separera frågorna med ; också.
Går det göra detta i en fråga i mysql och i så fall hur ser den ut?
mvh Jörgen
------------------
Varför bråka när man kan kramas?
[Redigerat av jorgen den 05 dec 2001]
sql = "update Inlagg set AntalSvar = ( select count (Thread_MessId) from Inlagg where Thread_MessId = " & _
Request.Querystring("OrgId") & ")"
borde det se ut som, men den frågan fungerar inte i Mysql. Jag vet inte heller något sätt att skriva om det så att det går att utföra med en fråga.
------------------
essentitia preter non sans multiplicandum
Okey, blir två frågor som jag misstänkte :)
mvh Jörgen :)
------------------
Varför bråka när man kan kramas?