28. november 2005 - 19:17Der er
9 kommentarer og 1 løsning
Joine 2 tabeller sA man finder ud af hvad det ikke skal være
Jeg har 2 tabeller. 1. Med emner: s_emner e_id e_titel e_parentid <- Skal være 0 ellers skal det heller ikke vises
2. Med vis skal ikke vises. s_visikke vi_id vi_user <- bruger hentet med $_SESSION[userid] vi_type <- skal kun hente dem med type 12. vi_emne <- Det e_id der ikke skal vises.
Det jeg gerne vil er at man automatisk kun henter dem man ønsker at se og dermed ikke regner de andre med.
Ifølge SoftwareOne ligger de reelle AI-gevinster gemt i områder af central betydning for forretningen.
Slettet bruger
28. november 2005 - 19:24#1
Muligvis
SELECT e_id, e_titel FROM s_emner WHERE e_parentid = 0 AND e_id NOT IN ( SELECT vi_emne FROM s_visikke WHERE vi_user='{$_SESSION['userid']}' AND vi_type = 12 )
#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT * FROM s_visikke WHERE vi_user LIKE '1' AND
SELECT e_id, e_titel FROM s_emner LEFT OUTER JOIN s_visikke ON s_emner.e_id = s_visikke.vi_emne WHERE e_parentid = 0 AND vi_emne IS NULL AND vi_type = 12 AND vi_user = '{$_SESSION['userid']}'
Og for en ordens skyld skal jeg lige sige, at det er generelt en god ide specifikt at bede om de felter, man ønsker at trække ud, og dermed ikke bruge * til sin select.
Synes godt om
Slettet bruger
29. november 2005 - 10:47#6
Kommer lige til at tænke på, at kontrollen af vi_emne og vi_type nok skal laves med HAVING i stedet for WHERE.
Synes godt om
Slettet bruger
29. november 2005 - 10:52#7
Vrøvl, de skal bare flyttes op som join-betingelse:
SELECT e_id, e_titel FROM s_emner LEFT OUTER JOIN s_visikke ON s_emner.e_id = s_visikke.vi_emne AND vi_type = 12 AND vi_user = '{$_SESSION['userid']}' WHERE e_parentid = 0 AND vi_emne IS NULL
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.