Jesper TMedlem sedan nov. 20017 058 inlägg Jag försöker att få ut hur många underkategorier (hur många parent_page_id som = page_id)
Denna visar ingenting:
("SELECT page_id,parent_page_id,linktext,count(*) FROM tbl_links WHERE page_id=parent_page_id GROUP BY page_id ORDER BY orderid ")
Denna genererar fel:
("SELECT page_id,parent_page_id,linktext,(SELECT count(*) FROM tbl_links WHERE page_id=parent_page_id GROUP BY page_id) FROM tbl_links ORDER BY orderid ")
LarsGMedlem sedan dec. 200012 465 inlägg SELECT p.page_id,p.linktext,count(*)
FROM tbl_links p inner join tbl_links c
on p.page_id = c.parent_page_id
GROUP BY p.page_id,p.linktext
Om du har group by så kan du inte göra order by på något som inte finns med i select-listan. (Eller hur ;))
Flyttas från Mysql till SQL
Jesper TMedlem sedan nov. 20017 058 inlägg Det står bara 0 (noll) nu på varenda post.
LarsGMedlem sedan dec. 200012 465 inlägg Oj då. Då måste jag testa lite också. Jag återkommer.
Jesper TMedlem sedan nov. 20017 058 inlägg Va? LarsG! Testar du? Jag trodde du hade allt på dina fem... ;)
LarsGMedlem sedan dec. 200012 465 inlägg Testresultat
create table links( page_id int,parent int, text char);
insert into links values(1,null,'a');
insert into links values(2,null,'b');
insert into links values(3,1,'c');
insert into links values(4,1,'d');
insert into links values(5,2,'e');
select l1.page_id , l1.text , count(*)from links l1 , links l2
where l1.page_id = l2.parent
group by l1.page_id,l1.text;
PAGE_ID TEXT
=========== ==== ===========
1 a 2
2 b 1
2 rows found
Jag har kanske missförstått hur din tabell är definerad.
Fel i Mysql?
Jesper TMedlem sedan nov. 20017 058 inlägg CREATE TABLE tbl_links (
page_id int(10) unsigned NOT NULL auto_increment,
parent_page_id int(11) default NULL,
linktext varchar(250) default NULL,
orderid int(11) default NULL,
PRIMARY KEY (page_id)
) TYPE=MyISAM;
INSERT INTO tbl_links VALUES("2", "1", "Testlänk 1", "1");
INSERT INTO tbl_links VALUES("4", "1", "Testlänk 2", "2");
INSERT INTO tbl_links VALUES("6", "1", "Testlänk 3", "3");
Jesper TMedlem sedan nov. 20017 058 inlägg Alltså alla poster skall hämtas, och count() skall plocka ut hur många av posterna som innehåller varje specifikt id.
Ex.
page_id parent_page_id linktext orderid
====== =========== ===== =====
1 0 Ettan 1
2 1 Två 2
3 1 Tre 3
4 2 Fyra 4
Alltså:
getrows(0,0) skulle visa 2
(0,1) skulle visa 1
(0,2) och (0,3) skulle visa 0
en aning svårförklarat... :)
LarsGMedlem sedan dec. 200012 465 inlägg Vilket resultat förväntar du dig?
Jesper TMedlem sedan nov. 20017 058 inlägg 1 0 Ettan 1 :2
2 1 Två 2 :1
3 1 Tre 3 :0
4 2 Fyra 4 :0
id 1 finns i två poster alltså så :2
osv...
LarsGMedlem sedan dec. 200012 465 inlägg Det där får jag inte ihop med de testdata som du gjorde insert på.
Jesper TMedlem sedan nov. 20017 058 inlägg Nej, men det var ingen testdata det var endast tre poster vilka som helst som jag visade.
Här är samma värden som i exemplet ovan:
INSERT INTO tbl_links VALUES("1", "0", "Ettan", "1");
INSERT INTO tbl_links VALUES("2", "1", "Två", "2");
INSERT INTO tbl_links VALUES("3", "1", "Tre", "3");
INSERT INTO tbl_links VALUES("4", "2", "Fyra", "4");
Jesper TMedlem sedan nov. 20017 058 inlägg Det kanske inte funkar över huvud taget?
Jesper TMedlem sedan nov. 20017 058 inlägg Ok, det tolkar jag som att det är omöjligt.
Tack ändå. :)