webForumDet fria alternativet

sql-fråga, från Access till MySQL

7 svar · 672 visningar · startad av Vinnaren

VinnarenMedlem sedan sep. 2005833 inlägg
#1

Hej

Har denna sql-fråga som funkar i Access:

SELECT nyheter.nyID, anvandare.userID AS anvandare_userID, anvandare.userNamn, nyheter.userID AS nyheter_userID, nyheter.nyDatum, nyheter.nyRubrik, iif(exists (select * from nyheter_kommentarer where nyheter.nyID = nyheter_kommentarer.nyID),1,0) as kommentar 
FROM anvandare INNER JOIN nyheter ON anvandare.userID=nyheter.userID ORDER BY nyheter.nyDatum DESC

Får felmeddelandet:
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 '(exists (select * from nyheter_kommentarer where nyheter.nyID = nyheter_kommenta' at line 1

Undrar nu hur jag ska få den att fungera även i MySQL?

Tacksam för all hjälp :stud

TroxyMedlem sedan mars 20041 505 inlägg
#2

Det är väl funktionen IIF() som den klagar på.
Motsvarigheten i MySQL är IF().
Testa att bara sudda ut ett I så kanske det funkar :)

Peter SMedlem sedan dec. 20025 483 inlägg
#3

Testa:

SELECT
	nyheter.nyID,
	anvandare.userID AS anvandare_userID,
	anvandare.userNamn,
	nyheter.userID AS nyheter_userID,
	nyheter.nyDatum,
	nyheter.nyRubrik,
	case when exists(select 1 from nyheter_kommentarer where nyheter.nyID = nyheter_kommentarer.nyID)
	  then 1
	  else 0
	end as kommentar 
FROM
	anvandare INNER JOIN nyheter
	ON
	anvandare.userID=nyheter.userID
ORDER BY
	nyheter.nyDatum DESC
VinnarenMedlem sedan sep. 2005833 inlägg
#4

tack, nu funkar den :bire

VinnarenMedlem sedan sep. 2005833 inlägg
#5

har fått en sql fråga till som har lagt av sen jag byte till MySQL

SELECT spelare.playID, spelare.lagID, spelare.landID AS spelare_landID, spelare.playFnamn+' '+spelare.playEnamn AS Namn, 
spelare.playFnamn, spelare.playEnamn, spelare.playFodd, spelare.playFodelseort, spelare.playPosition, spelare.playSkott, spelare.playAktiv, 
land.landID AS land_landID, land.land, land.flagga, klubbar.lagNamn FROM (land INNER JOIN spelare ON land.landID=spelare.landID) 
LEFT JOIN klubbar ON spelare.lagID=klubbar.lagID WHERE spelare.playFnamn+' '+spelare.playEnamn Like '%test%' AND playAktiv =1 ORDER BY playEnamn ASC

det är nog spelare.playFnamn+' '+spelare.playEnamn som inte fungerar, får inte fram kolumnen Namn, så då funkar det nog inte att söka i häller, får nämligen ingen träff.

Hur ska man få detta att fungera i MySQL???

Tacksam för all hjälp

@ndersMedlem sedan juni 200032 969 inlägg
#6

Prova att använda concat() istället för att konkatenera med +.

Peter SMedlem sedan dec. 20025 483 inlägg
#7

Byt ut de raderna mot

concat(spelare.playFnamn,' ',spelare.playEnamn)

Red./ Grrr

VinnarenMedlem sedan sep. 2005833 inlägg
#8

tack, nu funkar den igen :i

137 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)