Avatar billede exp Juniormester
05. april 2005 - 20:10 Der er 16 kommentarer og
1 løsning

Hjælp til mysql-sætning, muligvis noget INNER JOIN

Har to tabeller i mysql, hvor jeg skal bruge nogle data. De data jeg skal bruge er:
- articles.id
- articles.title
- articles.synopsis
- articles.text
- articles.added
- articles.author
- authors.username

Jeg vil gerne have hentet alle data i én mysql-sætning, men jeg kan sgisme ikke finde ud af det :-(

Måden data vælges er, at jeg har articles.id som variabel, så hvad jeg ved med sikkerhed er, at et eller andet sted skal der stå:
WHERE `articles.id` = 1

Desuden VED jeg, at authors.username skal hentes fra den række i tabellen, hvor authors.id = articles.author

Men så går jeg i stå - uanset hvad jeg prøver, så glipper det, og jeg får blot at vide, at SQL'en er forkert.

Håber det er forståeligt, ellers må I endelig spørge :-)
Avatar billede bromer Nybegynder
05. april 2005 - 20:15 #1
SELECT ar.id,ar.title,ar.synopsis,ar.text,ar.added,ar.author,au.username FROM articles ar INNER JOIN authors au ON (ar.author = au.id)
Avatar billede barklund Nybegynder
05. april 2005 - 21:25 #2
Og så propper du bare en eventuel WHERE på til sidst - ved at skrive WHERE ar.id=1 eller noget i den stil.
Avatar billede bromer Nybegynder
05. april 2005 - 21:27 #3
ja det er klart. Tak barklund
Avatar billede exp Juniormester
05. april 2005 - 21:28 #4
Når jeg sådan lige umiddelbart oversætter det, får jeg:

SELECT
articles.id,
articles.title,
articles.synopsis,
articles.text,
articles.added,
articles.author,
authors.username
FROM
articles,
authors
INNER JOIN
authors.username
ON (
articles.author = authors.id
)

men det giver:
#1044 - Access denied for user: 'username@%' to database 'authors'
Avatar billede bromer Nybegynder
05. april 2005 - 21:31 #5
Så har den bruger du forbinder til mysql med ikke rettigheder til at lave SELECTs på den tabel.
Avatar billede barklund Nybegynder
05. april 2005 - 21:31 #6
Hvorfor oversætte det? Er det ikke fint nok det bromer skrev? Og derudover er det _helt_ forkert "oversat".
Avatar billede barklund Nybegynder
05. april 2005 - 21:32 #7
bromer, han joiner over i en ny database - der nok ikke findes.
Avatar billede bromer Nybegynder
05. april 2005 - 21:33 #8
Ja, det gør han sørme også. Det var da en mærkelig ting at gøre.
Avatar billede exp Juniormester
05. april 2005 - 21:39 #9
barklund >>
fordi mine tabeller ikke hedder ar.id, ar.title etc

Faktisk forstår jeg slet ikke hvor "ar" og "ua" kommer fra, men går ud fra, at der er forkortelser for "articles" og "authors"

Og Ovenstående sætning var hvad jeg udledte af:
SELECT ar.id,ar.title,ar.synopsis,ar.text,ar.added,ar.author,au.username FROM articles ar INNER JOIN authors au ON (ar.author = au.id)

Hvorfor den joiner over i en anden database, kan jeg jo kun spørge jer om - det er jer der ved noget om det.
Avatar billede bromer Nybegynder
05. april 2005 - 21:40 #10
FROM articles ar INNER JOIN authors au

det gør at jeg kan skrive ar istedet for articles og au istedet for authors :)
Avatar billede barklund Nybegynder
05. april 2005 - 21:43 #11
ar og au er lige netop forkortelser for tabellernes navne - og de er endda korrekte, da de er skrevet ind i forespørgslen som "officielle" forkortelser for tabellerne. Så mysql kan fint finde ud af det - bare smid bromer's query efter den og det virker :)
Avatar billede barklund Nybegynder
05. april 2005 - 21:44 #12
Hvis du skulle lave nogle af navnene om, så ville du nok blive hintet om det - der er meget få herinde, der skriver en halv query, uden at fortælle dig hvilken halvdel du skal rette - og her skulle intet rettes :)
Avatar billede exp Juniormester
05. april 2005 - 22:03 #13
Jeg takker - smid svar begge to :-)
Avatar billede barklund Nybegynder
05. april 2005 - 22:05 #14
Det var jo bromer's query - kast dem efter ham :)
Avatar billede barklund Nybegynder
05. april 2005 - 22:05 #15
(men sørg for at ramme ham lige på skulderen, eller omkring den nederste del af ryggen)
Avatar billede bromer Nybegynder
05. april 2005 - 22:09 #16
spejl
Avatar billede bromer Nybegynder
05. april 2005 - 23:02 #17
tak for point
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
Kategori
Computerworld tilbyder specialiserede kurser i database-management

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