webForumDet fria alternativet

join och delete

2 svar · 188 visningar · startad av aleborg

aleborgMedlem sedan jan. 20012 962 inlägg
#1

Går det att sätta ihop det här till en, eller ev. två deletes utan att loopa? t ex med join eller nått?

Public Sub DelCategory(ID)
	Dim strSQLlist, SQL, objRSlist
	
	strSQLlist = "Select Forum_ID From aForums Where Forum_Sub="& ID
	Set objRSlist = GetConn.Execute(strSQLlist)
	If Not objRSlist.EOF Then
		Do Until objRSlist.EOF
			SQL = "Delete From aF_Topics Where Topic_Category="& objRSlist("Forum_ID")
			GetConn.Execute(SQL),,128
		objRSlist.MoveNext
		Loop
	End If
	objRSlist.Close
	Set objRSlist = Nothing

	SQL = "Delete From aForums Where Forum_Sub="& ID
	GetConn.Execute(SQL),,128
	SQL = "Delete From aForums Where Forum_ID="& ID
	GetConn.Execute(SQL),,128
	

End Sub

Använder MySQL 3.23

LarsGMedlem sedan dec. 200012 465 inlägg
#2

Nej, det du kan göra att slå ihop dom två sista delete-satserna.

SQL = "Delete From aForums Where "& ID & "in(Forum_Sub,Forum_ID)"
	GetConn.Execute SQL,,128

Det är effektivare att du samlar alla id i en sträng och bara gör en delete

If Not objRSlist.EOF Then
   sql = "Delete From aF_Topics Where Topic_Category in " & "(" & objRSlist.getstring(2,,,",",) & ")"
   getconn.execute sql,,128
End If
aleborgMedlem sedan jan. 20012 962 inlägg
#3

ahh, tack

Genererad på 375 ms · cache AV · v20260730165559-full.f96bc7eb