webForumDet fria alternativet

Unknown column node.RelId in 'on clause'

1 svar · 396 visningar · startad av Travoni

TravoniMedlem sedan okt. 20041 556 inlägg
#1

SP:n

PROCEDURE `procUseTemp`(sIds varchar(1000))
BEGIN 
DECLARE FirstPos INT;
DECLARE FirstPos1 INT;
DECLARE SecondPos INT; 
SET FirstPos=1;
	IF (LENGTH(sIds) > 0) THEN
        DROP TABLE IF EXISTS TempTable;
        CREATE TEMPORARY TABLE TempTable(id int) ENGINE=MEMORY;
		SET SecondPos = LOCATE(',',sIds,FirstPos);
		WHILE (SecondPos>0) DO
			INSERT INTO TempTable
			VALUES(cast(substring(sIds, FirstPos, (SecondPos - FirstPos)) as unsigned INT));
			set FirstPos=SecondPos+1;
			SET SecondPos=LOCATE(',',sIds,FirstPos);
		END WHILE;
		INSERT INTO TempTable
		VALUES(cast(right(sIds, LENGTH(sIds) - FirstPos + 1 ) as unsigned INT));
	END IF;
END;

Om jag kör denna så får jag felet: Unknown column node.RelId in 'on clause'

CALL procUseTemp('6');

SELECT distinct(node.id)
FROM categories AS node,categories AS parent
INNER JOIN temptable AS tmp 
ON tmp.ID = node.RelId
WHERE node.lft BETWEEN parent.lft AND parent.rgt

Denna fullar men ger fel resultat:

CALL procUseTemp('6');

SELECT distinct(node.id),node.RelId
FROM categories AS node
INNER JOIN categories AS parent
ON node.lft BETWEEN parent.lft AND parent.rgt
INNER JOIN temptable AS tmp 
ON tmp.ID = node.RelId
TravoniMedlem sedan okt. 20041 556 inlägg
#2
CALL procUseTemp('6');
SELECT distinct(node.id)
FROM categories AS node
INNER JOIN categories AS parent
ON node.lft BETWEEN parent.lft AND parent.rgt
INNER JOIN temptable AS tmp 
ON tmp.ID = [B]parent.Id[/B]
130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)