webForumDet fria alternativet

joina?

Databaser & SQLur Databashanterare & SQL

6 svar · 215 visningar · startad av Gaski

Medlem sedan juni 2000310 inlägg
Frågan#1

Har två olika tabeller, krog och check.
krog innehåller info om krogar som kan ha flera checkar.

Jag ska matcha krog.namn och check.krog när jag tar ut alla värden ur check. Dvs jag vill ha lite värden ifrån krog som t.ex. telefonnr, webadress osv... när jag tar ut alla checkar.

Har testar med följande men det fungerar inte så bra...

SELECT * FROM check INNER JOIN krog ON check.krog = krog.namn WHERE NOW() BETWEEN check.frm AND check.till ORDER BY krog.gata LIMIT 0,10
Medlem sedan dec. 1999707 inlägg
#2

Vet iofs inte vad LIMIT gör för något; är det samma som TOP?

SELECT TOP 10
	check.*,
	krog.*
FROM
	check
	INNER JOIN
	krog
	ON
	check.krog = krog.namn
WHERE
	NOW() BETWEEN check.frm AND check.till
ORDER BY
	krog.gata
Medlem sedan dec. 200012 464 inlägg
#3

Vad menar du med:

Fungerar inte så bra

Toha:

Limit är ungefär som top (fast bättre).

Medlem sedan juni 2000310 inlägg
#4

Kör det med PHP och får följande svar:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/k/krogkort/www/vardecheckar.php on line 112

Vilket brukar betyda att den inte returnerar någonting...
Men jag har kollat i databasen och där ser allting rätt ut. Men om koden ovan (utan top och limit istället) ska fungera så får jag kolla igen....

Medlem sedan dec. 200012 464 inlägg
#5

Det brukar väl betyda att det är något fel i selectsatsen.

Lägg till en felkontroll.

$sql = "SELECT * FROM check INNER JOIN krog " .
 " ON check.krog = krog.namn " . 
"WHERE NOW() BETWEEN check.frm AND check.till " .
" ORDER BY krog.gata LIMIT 0,10";
$result = mysql_query($sql) or die(mysql_error());
Medlem sedan juni 2000310 inlägg
#6

Får:
You have an error in your SQL syntax near 'INNER JOIN krog ON check.krog = krogar.namn WHERE NOW() BETWEEN check.frm AND ch' at line 1

På:
SELECT check.*, krogar.* FROM INNER JOIN krogar ON check.krog = krogar.namn WHERE NOW() BETWEEN check.frm AND check.till ORDER BY krogar.".$sortby." LIMIT ".$counter.",".$antalpersida

Medlem sedan dec. 200012 464 inlägg
#7

Du verkar ha tappat bort ett tabellnamn

FROM INNER JOIN --> FROM CHECK INNER JOIN

257 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
127 ms — hämta forumlista (db)
123 ms — hämta statistik (db)
131 ms — hämta tråd, inlägg och bilagor (db)