I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
SELECT antal, id FROM (SELECT COUNT(id) as antal, id FROM tabel GROUP BY id) WHERE antal>1
så finder den de id-numre som er benyttet mere end én gang. Man kunne også forestille sig at man skal lave JOIN mellem 2 tabeller, men man vil kun have nogle af posterne med fra den ene tabel:
SELECT * FROM tabel1 t1, tabel2 t2 WHERE t1.id=t2.id AND t1.nummer NOT IN (SELECT nummer FROM tabel2 WHERE felt=\'x\')
Kan man så gøre sådan så at jeg kan lave en forespørgsel i \"tbl_Brugere\", som så går ind i \"tbl_BrugerInfo\" og bruger henholdsvis \"Fornavn\" og \"Efternavn\" som kolonneoverskrifter. Så at når jeg udskriver brugerene på en liste vil det se ud som følgende.
På den måde skulle jeg også gerne kunne ORDER BY henholdvis \"BrugerID\", \"Fornavn\" eller \"Efternavn\". Kan dette lade sig gøre, eller det helt umuligt. Jeg smider gerne X-ANTAL(100) POINT oveni hvis det kan komme til at virke.
SELECT b.brugerid, f.infovalue as fornavn, e.infovalue as efternavn, b.brugernavn, b.adgangskode FROM tbl_brugere b, (SELECT brugerid, infovalue FROM tbl_brugerinfo WHERE infonavn=\'fornavn\') f, (SELECT brugerid, infovalue FROM tbl_brugerinfo WHERE infonavn=\'efternavn\') e WHERE b.brugerid=f.brugerid AND b.brugerid=e.brugerid
En ting er sikkert - jo længere du laver sætningen (jo flere du putter på), jo langsommere bliver det at udføre. Hvis du vil have det helt dynamisk kan du hente de forskellige felter fra tbl_brugerinfo, og så opbygge sætningen dynamisk.
jeg kan i helt forstå hvordan du bruger variablerne \"f\" og \"e\". Fordi hvis jeg skal lave den 100% dynamisk - så kan jeg jo ikke benytte mig af: a,b,c,d,e,f,g..... x,z?
Var det ikke en meget handikappet måde at gemme dine data på? Jeg vil mene at det ville være mere hensigt mæsssigt at gemme det hele i den tabel, med mindre du har nogle brugerId\'er der ikke har noget navn eller efternavn, eller igen af delene. Rent preformens mæssigt er det utroligt langsomt og resourcekrævende at bruge \"inner-select\".
I øvrigt er det måske også en lidt dårlig løsning med denne sone\'s forslag, da det kan klares med mogle joins som er væsenligt hurtigere.
Jeg ville foreslå dette:
SELECT b.brugerid, f.infovalue as fornavn, e.infovalue as efternavn, b.brugernavn, b.adgangskode FROM tbl_brugere b, tbl_brugerinfo f, tbl_brugerinfo e WHERE b.brugerid=f.brugerid AND b.brugerid=e.brugerid
-Og så igen, så ville man kunne hente en del ved at samle datane i en tabel hvis der alligevel altid er både et fornavn og et efternavn til hver brugerId
Jeg kommer også lige til at se at du bruger store startbogstaver på feltnavne, det kan godt være du lige skal rette dem for at det virker. -Også lige på \'fornavn\' og \'efternavn\'
ricki: Den version af mit system som er præsenteret her på siden er i realiteten meget simplificeret. I virkeligheden består mine brugeroplysninger af 6 tabeller, som ikke indeholder andet end ganske almindelige brugerdata. Jeg vil godt give dig ret i at det \"rent preformance-mæssigt\" ville være meget nemmere at gemme oplysningerne i samme tabel, hvilket jeg allerede har forsøgt med. Problemet er at brugerne er inddelt i forskellige brugergrupper. Informationerne på brugerene blandt brugergrupperne er forskellige. Samtidig så skal brugerene have mulighed for at indtaste individuelle informationer. Hvis det skulle have fungeret på den gamle måde, så skulle jeg bruge ALTER TABLE for at tilføje nye kolonner i tabellen hver gang der en bruger ville tilføje nye informationer. På den nye måde bliver informationerne mere dynamiske, samtidig med at jeg har mulighed for at lagre data\'ne med den rigtige datatype, og på den måde spare plads. Den eneste ulempe ved metoden, er at det er svært at udskrive informationerne på en hurtig og præsentabel måde. Men det er jo det jeg behøver jeres hjælp til.
Du kunne også være smart og lave views, istedet for indlejrede selects.... Som du selv siger har du 6 tabeller du skal bruge data fra, hvis du laver et view, kan du benytte det som udtræk fra en tabel, men det er performance mæssigt meget bedre....
Roadrunr: Hvis dine du har forskellige data om forskellige brugere er det korrekt at det ikke er smart at have det i en tabel, men skal undgå at have kolonner hvor der er felter der er tomme. Men jeg syntes din løsning er lidt dårlig, jeg ville dele mine brugere op i nogle grupper og så have en tabel for hver gruppe, men disse tabeller skulle så kun indeholde de data der er til forskel fra de andre. -Hvis du forstår mig
Ricki: det lyder såmen meget smart. Men jeg ville bare gerne uden om det der med at skulle til at oprette, ændre, slette tabeller og kolonner. Fordi én af de ting jeg syntes der er klondset ved din løsning, er hvis hvis f.eks. du ville have kolonnerne præsenteret i en anden rækkefølge el.lign. Så skal man jo igang med en masse omflytning af data. Men jow, jeg kan godt forstå dit argument.
Roadrunr: Hvis du vil hvade det, vil jeg da godt kikke på din datamodel og se om den ikke kan optimeres. Jeg vil tror der er noget galt i din datamodel hvis du skal til at oprette og nedlægge kolonner i din kode, det virker ikke særligt hensigtmæssigt. Og den løsning du har fundet tror jeg heller ikke på er den bedste. -Din problemstillig lyder meget spændene og jeg vil da gerne hjælpe dig med at løse den hvis du vil.
Sone: Okay, jeg syntes bare du lød så sur :-) -Troede du var en af de der irreterende point griske brugere, der ikke svare fordi de vil hjælpe et medmenneske, men fordi de kan få nogle point.
Dine tabeller burde lægges sammen, da modellen er forfejlet. Hvis du beholder samme model, burde du også have et separat primær nøgle i en af dem, og i den burde \'brugerid\' optræde som fremmed nøgle, dvs. som en relation.
Men anyway:
sql = \"select t.brugerid, t.brugernavn, i.InfoNavn, i.InfoValue from tbl_bruger t inner join tbl_Brugerinfo i on i.brugerid = t.brugerid\"
sql = \"select t.brugerid, t.brugernavn,t.adgangskode, i.InfoNavn, i.InfoValue from tbl_bruger t inner join tbl_Brugerinfo i on i.brugerid = t.brugerid\"
Takker venligst for deltagelsen, dog løste det ikke helt mit problem.
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.