Avatar billede beelance Praktikant
06. marts 2016 - 21:43 Der er 9 kommentarer og
1 løsning

Hjælp til SQL Query

Hej med jer,

Jeg sidder og kæmper med en inkonsistent MySQL hvor jeg ønsker at skabe et overblik og nogle problemer.

Jeg har en Tabel der hedder 'Scener' og et felt der hedder 'MovieID' og et andet der hedder 'DVDID'

Jeg ønsker at trække alle rækker ud hvor 'DVDID' figurer i mere end ét 'MovieID'


Jeg håber det giver mening :-)
Avatar billede beelance Praktikant
06. marts 2016 - 21:50 #1
primary key er Id, så jeg vil vælge at vise de Id's hvor det ovenstående gør sig gældende.
Avatar billede olsensweb.dk Ekspert
06. marts 2016 - 21:57 #2
>Jeg ønsker at trække alle rækker ud hvor 'DVDID' figurer i mere end ét 'MovieID'
forstår jeg ikke helt, men vi skal have fat i count
http://dev.mysql.com/doc/refman/5.7/en/counting-rows.html

noget med where count(DVDID) >1

kan du ikke lave et test dump af din tabel så vi har nogle test data
Avatar billede olsensweb.dk Ekspert
06. marts 2016 - 21:58 #3
>Jeg ønsker at trække alle rækker ud hvor 'DVDID' figurer i mere end ét 'MovieID'
forstår jeg ikke helt, men vi skal have fat i count
http://dev.mysql.com/doc/refman/5.7/en/counting-rows.html

noget med where count(DVDID) >1

kan du ikke lave et test dump af din tabel så vi har nogle test data
Avatar billede olsensweb.dk Ekspert
06. marts 2016 - 21:58 #4
>Jeg ønsker at trække alle rækker ud hvor 'DVDID' figurer i mere end ét 'MovieID'
forstår jeg ikke helt, men vi skal have fat i count
http://dev.mysql.com/doc/refman/5.7/en/counting-rows.html

noget med where count(DVDID) >1

kan du ikke lave et test dump af din tabel så vi har nogle test data
Avatar billede olsensweb.dk Ekspert
06. marts 2016 - 21:58 #5
>Jeg ønsker at trække alle rækker ud hvor 'DVDID' figurer i mere end ét 'MovieID'
forstår jeg ikke helt, men vi skal have fat i count
http://dev.mysql.com/doc/refman/5.7/en/counting-rows.html

noget med where count(DVDID) >1

kan du ikke lave et test dump af din tabel så vi har nogle test data
Avatar billede beelance Praktikant
06. marts 2016 - 22:05 #6
Hej ronols:

Min tabel 'scener' består af felterne ID,MovieID,DVDID

data kunne se sådan ud:

ID,MovieID,DVDID
1,20,432
2,21,432
3,22,436
4,23,185

her vil jeg så gerne trække rækkerne 1 og 2 ud da 2 movieID's henviser til samme DVDid.

Håber det giver mening
Avatar billede olsensweb.dk Ekspert
06. marts 2016 - 23:40 #7
beklager de mange ens indlæg, mit net gik net lige som jeg sendte, også er indlægget gensendt flere gange :(

ref http://stackoverflow.com/questions/4519582/how-to-select-non-unique-rows

SELECT T1.*
FROM scener AS T1
JOIN
(
    SELECT `DVDID`
    FROM scener
    GROUP BY `DVDID`
    HAVING COUNT(*) > 1
) T2
ON T1.`DVDID` = T2.`DVDID`



test tabel

CREATE TABLE `scener` (
  `id` int(11) NOT NULL,
  `MovieID` int(11) NOT NULL,
  `DVDID` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;


INSERT INTO `scener` (`id`, `MovieID`, `DVDID`) VALUES
(1, 20, 432),
(2, 21, 432),
(3, 22, 436),
(4, 23, 185);


ALTER TABLE `scener`
  ADD PRIMARY KEY (`id`);


ALTER TABLE `scener`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;




output

id, MovieID, DVDID
1, 20, 432
2, 21, 432
Avatar billede beelance Praktikant
07. marts 2016 - 07:25 #8
Perfekt! Og mange tak for at linke til information omkring opbyggelsen af denne query. Har har ikke brugt eksperten i evigheder, hvordan giver jeg points?
Avatar billede olsensweb.dk Ekspert
07. marts 2016 - 08:14 #9
>hvordan giver jeg points?
ref http://www.eksperten.dk/faq#faq-3-5

Brugeren har kun lagt en kommentar, hvilket ikke kan belønnes med point. Du beder vedkommende, i en kommentar, om lave et svar. Når han har gjort det, kan han tildeles points.

du får et svar her, det var en query jeg også lige skulle pusle lidt med :)
Avatar billede beelance Praktikant
07. marts 2016 - 11:22 #10
jeg var også noget forvirret! :-) tak igen.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester