Er der mon en, der kan hjælpe mig med en forklaring på forskellen på nedenstående to selectsætninger, der returnerer det samme?
Jeg havde lavet den første og kunne ikke få det til at fungere. Jeg oprettede derfor et spørgsmål her og fik hjælp. Jeg fik dog også at vide, jeg burde bruge en JOIN. Det har jeg så arbejdet på, og det lykkedes med en INNER JOIN, men...
Nu er det jo, jeg godt kunne tænke mig en forklaring på, hvad forskellen er. Den første virker meget mere overskuelig, og de returnerer jo det samme...
select title from book where isbn = (select isbn from author_book where anum = (select anum from author where name = "Jennifer Widom"));
SELECT book.* FROM book INNER JOIN author_book on book.isbn=author_book.isbn INNER JOIN author on author.anum=author_book.anum WHERE name = "Jennifer Widom"
Ups det var en tanketorsk. Jeg er med på forskellen i, hvad der returneres fra de to forskellige selecter.
Jeg har forsøgt at måle lidt, men.. PhyMyAdmin returnerer ikke umiddelbart execution time, og så har jeg forsøgt i SQL Fiddle, men svartiderne virker ikke pålidelige.
Men du siger altså, at kaldet er optimeret til databasen, når der benyttes join - i modsætning til den anden sætning, hvor der er select i select?
Sådan har jeg lært det. Men det skal måske være på langsomme cpu'er og store datamængder før der reelt kan måles forskel. Kan være gammel og ubrugelige fordomme.
Jeg skal nok vende tilbage til denne, men jeg ligger vandret i øjeblikket og har derfor ikke haft tid til at kigge mere på det.
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.