webForumDet fria alternativet
Logga in / Bli medlem

Problem med SQL-script

Databaser & SQL

9 svar · 370 visningar · startad av grillkillen

Medlem sedan sep. 200350 inlägg
Trådstart#1

Jag har bytt databas från MSSQL till MySQL och har nu problem med en SQL-fråga i ASP. Vet någon problemet? Det fungerade fint i MSSQL.


select *, (select count(*) from tblTest_dev as SubMeny where SubMeny.UnderMenuId = tblTest_dev.Id and tblTest_dev.Publishing = 1) as SubMenus from tblTest_dev where tblTest_dev.UnderMenuId = "& menuItem &" and tblTest_dev.LanguageId = "& languageId &" and tblTest_dev.Publishing = 1 order by MenuOrder
Medlem sedan feb. 200112 078 inlägg
#2

Flyttas från ASP.

Medlem sedan juni 200032 967 inlägg
#3

Definiera "problem". Felmeddelande? Vilken version av MySQL använder du?

Radbryt gärna din långa SQL-fråga så den går att läsa.

Medlem sedan sep. 200350 inlägg
#4

SQL-frågan lyder:

select *, (select count(*) from tblTest_dev as SubMeny where 
SubMeny.UnderMenuId = tblTest_dev.Id and tblTest_dev.Publishing = 1) as 
SubMenus from tblTest_dev where tblTest_dev.UnderMenuId = "& menuItem 
&" and tblTest_dev.LanguageId = "& languageId &"
 and tblTest_dev.Publishing = 1 order by MenuOrder

Felmeddelandet lyder:

[MySQL][ODBC 3.51 Driver][mysqld-4.0.18-log]You have an error in your SQL
 syntax. Check the manual that corresponds to your MySQL server version for
 the right syntax to use near 'select count(*) from tblTest_dev as SubMeny
 where SubMeny.Und...
Medlem sedan juni 200032 967 inlägg
#5

Subqueries stöds från och med version 4.1 av MySQL. Så; antingen får du uppgradera, eller skriva om frågan som en JOIN.

Medlem sedan sep. 200350 inlägg
#6

Ok, sådär. Vill du ge ett förslag på hur jag kan skriva om frågan med join..?

Medlem sedan juni 200032 967 inlägg
#7

Det där kan helt klart bli klurigt att få till när jag tänker efter.

Har du ingen möjlighet att uppgradera, eller det kanske inte är din egen server?

Medlem sedan sep. 200350 inlägg
#8

Nej, det är inte min server. Det jobbiga är att det borde vara fixat nu ikväll. Jag har fått ansvaret eftersom jag ansågs kunna det... vilket inte gick så bra. :) Så om du vill hjälpa till ska jag se till att du belönas därefter.

Medlem sedan dec. 200012 464 inlägg
#9
select <kolumner>, 
 count(underMenuId) as submenus
from tblTest_dev as menu
 left join tblTest_dev as SubMeny on menu.id = submenu.UnderMenuId
where menu.Publishing = 1
and menu.UnderMenuId = "& menuItem & "
and menu.LanguageId = "& languageId & "
group by <kolumner>
order by menu.MenuOrder
Medlem sedan juni 200032 967 inlägg
#10

När snabelns hjärna sover klampar den store björnen in och pekar ut det blå skåpet.

Finfin lösning, tycker jag det ser ut att vara!

272 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
143 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)