27. oktober 2002 - 21:26Der er
6 kommentarer og 1 løsning
SUBSELECT eller ?
Jeg bruger en MySQL 3.23 og ville gerne lave et subselect, men det understøtter den jo ikke. (eller?) I flg. SQL statement, ville jeg gerne kunne finde et antal records der matcher kravet i en anden tabel: SELECT ARTICLE.ID, ARTICLE.TITLE, ARTICLE.PUNCHLINE, ARTICLE.ICONB, CATEGORYARTICLE.CATEGORYID, CATEGORYARTICLE.ARTICLEID FROM ARTICLE, CATEGORYARTICLE WHERE ARTICLE.ID = CATEGORYARTICLE.ARTICLEID AND CATEGORYARTICLE.CATEGORYID = 10 LIMIT 0, 5;
Jeg ville mægtigt gerne have muligheden for at se hvilke kolonner der matcher i tabellen ELEMENT. ELEMENT ------- ID ARTICLEID ETEXT
Så jeg prøvede at gøre sådan: SELECT ARTICLE.ID, ARTICLE.TITLE, ARTICLE.PUNCHLINE, ARTICLE.ICONB, CATEGORYARTICLE.CATEGORYID, CATEGORYARTICLE.ARTICLEID, (SELECT COUNT(*) FROM ELEMENT WHERE ELEMENT.ARTICLEID = ARTICLE.ID) AS ELEMENTCOUNT FROM ARTICLE, CATEGORYARTICLE WHERE ARTICLE.ID = CATEGORYARTICLE.ARTICLEID AND CATEGORYARTICLE.CATEGORYID = 10 LIMIT 0, 5;
Men ud fra hvad min MySQL bog siger, så er det først understøttet af ver. 2.34. Så hvad gør en klog ?
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Subselects er ikke nødvendige, men de er dog en dejlig ting :-)
Flg. burde virke: SELECT ARTICLE.ID, ARTICLE.TITLE, ARTICLE.PUNCHLINE, ARTICLE.ICONB, CATEGORYARTICLE.CATEGORYID, CATEGORYARTICLE.ARTICLEID, COUNT(*) AS ELEMENTCOUNT FROM ARTICLE, CATEGORYARTICLE, ELEMENT WHERE ARTICLE.ID = CATEGORYARTICLE.ARTICLEID AND CATEGORYARTICLE.CATEGORYID = 10 AND ELEMENT.ARTICLEID = ARTICLE.ID GROUP BY ARTICLE.ID, ARTICLE.TITLE, ARTICLE.PUNCHLINE, ARTICLE.ICONB, CATEGORYARTICLE.CATEGORYID, CATEGORYARTICLE.ARTICLEID LIMIT 0, 5;
Og ja, Postgres og MS SQL ville kunne løse det med subselects, men MySQL er hurtigere og mere stabil .. ihvertfald til det meste ..
>flse: Hmm, tja jeg fik det nu løst selv, men din giver heller ikke de kolonner retur hvor der ikke findes en ELEMENT.ETEXT.
Se min: SELECT ARTICLE.ID, ARTICLE.TITLE, ARTICLE.PUNCHLINE, ARTICLE.ICONB, CATEGORYARTICLE.CATEGORYID, CATEGORYARTICLE.ARTICLEID, COUNT(ELEMENT.ETEXT) AS ENUM FROM ARTICLE, CATEGORYARTICLE LEFT JOIN ELEMENT ON ELEMENT.ARTICLEID = ARTICLE.ID WHERE ARTICLE.ID = CATEGORYARTICLE.ARTICLEID AND CATEGORYARTICLE.CATEGORYID = 21 GROUP BY ID; SELECT ARTICLE.ID, ARTICLE.TITLE, ARTICLE.PUNCHLINE, ARTICLE.ICONB, CATEGORYARTICLE.CATEGORYID, CATEGORYARTICLE.ARTICLEID, COUNT(*) AS ELEMENTCOUNT FROM ARTICLE, CATEGORYARTICLE, ELEMENT WHERE ARTICLE.ID = CATEGORYARTICLE.ARTICLEID AND CATEGORYARTICLE.CATEGORYID = 21 AND ELEMENT.ARTICLEID = ARTICLE.ID GROUP BY ARTICLE.ID, ARTICLE.TITLE, ARTICLE.PUNCHLINE, ARTICLE.ICONB, CATEGORYARTICLE.CATEGORYID, CATEGORYARTICLE.ARTICLEID;
SELECT ARTICLE.ID, ARTICLE.TITLE, ARTICLE.PUNCHLINE, ARTICLE.ICONB, CATEGORYARTICLE.CATEGORYID, CATEGORYARTICLE.ARTICLEID, COUNT(ELEMENT.ETEXT) AS ENUM FROM ARTICLE, CATEGORYARTICLE LEFT JOIN ELEMENT ON ELEMENT.ARTICLEID = ARTICLE.ID WHERE ARTICLE.ID = CATEGORYARTICLE.ARTICLEID AND CATEGORYARTICLE.CATEGORYID = 21 GROUP BY ID;
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.