webForumDet fria alternativet

joina?

Databaser & SQLur Databashanterare & SQL

6 svar · 215 visningar · startad av Gaski

GaskiMedlem 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
tohas avatartohaMedlem 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
LarsGMedlem 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).

GaskiMedlem 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....

LarsGMedlem 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());
GaskiMedlem 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

LarsGMedlem sedan dec. 200012 464 inlägg
#7

Du verkar ha tappat bort ett tabellnamn

FROM INNER JOIN --> FROM CHECK INNER JOIN

134 ms totalt · 3 externa anrop · v20260731065814-full.58439ac5
132 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)