lillebrorMedlem sedan apr. 20041 687 inlägg
Hej! Nu har jag hållt uppe med SQL:andet än tid då jag lagt tiden på design av ett nytt projekt. Nu har jag dock äntligen kommit till det som är roligt - SQL-satskonstruktion :e
Behöver lite hjälp med en sats. Det är hur enkelt som helst men fick det bara inte att fungera.
Så här ser tabellerna ut (något förkorttade):
tblMember
==============
memberID
username
tblArticle
==============
articleID
date_time
headline
content
published
memberID
Den information jag vill ha ut i en sats från dessa tabeller är: articleID, date_time, headline, content, username
Jag får ut all information förutom användarnamnet eftersom man måste koppla tabellerna. Det är här problemet uppstår.
Så här ser min nuvarande sql-sats ut. Har för mig att man kunde använda sig av nästlande satser?! :OO
"SELECT date_time, headline, content, (SELECT username FROM tblMember WHERE tblMember.memberID = tblArticle.memberID) FROM tblArticle, tblMember WHERE articleID = $ID";
LarsGMedlem sedan dec. 200012 465 inlägg
Vilket problem upplever du med den koden? Om du skriver på det viset så skall du inte ha tblMember med i den yttre frågan.
SELECT date_time, headline, content,
(SELECT username
FROM tblMember
WHERE tblMember.memberID = tblArticle.memberID)
FROM tblArticle
WHERE articleID = $ID
Det finns alternativa sätt att skriva frågan.
lillebrorMedlem sedan apr. 20041 687 inlägg
Detta är felkoden jag får:
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 username FROM tblMember WHERE tblMember.memberID = tblAr
Nu har jag gjort de förändringar som du påpekade och det blir fortfarande fel! :OO
Kan tillägga att jag använder mig av MySQL...
lillebrorMedlem sedan apr. 20041 687 inlägg
Hur skulle man skriva ovanstående fråga med en JOIN-sats?
LarsGMedlem sedan dec. 200012 465 inlägg
SELECT date_time, headline, content, username
FROM tblMember , tblArticle
WHERE tblMember.memberID = tblArticle.memberID
WHERE articleID = $ID
lillebrorMedlem sedan apr. 20041 687 inlägg
Får nu följande fel med ovanstående sats...
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 'WHERE articleID = 1' at line 1
lillebrorMedlem sedan apr. 20041 687 inlägg
Jag förstår inte att det inte fungerar. Så här knepigt tycker jag inte att det varit förut! :)
lillebrorMedlem sedan apr. 20041 687 inlägg
Prövade att plocka bort den nästlade satsen och skicka iväg den ensam i SQL-frågan.
SELECT username FROM tblMember AS t1, tblArticle AS t2 WHERE t1.memberID = t2.memberID
Då fick jag ut det användarnamn jag efterfrågade. Det verkar bli något knas när den ligger inbakad i den resterande delen av SQL-frågan?!
LarsGMedlem sedan dec. 200012 465 inlägg
Jag slarvade när jag klippte ihop svaret. Det andra WHERE skall vara AND
SELECT date_time, headline, content, username
FROM tblMember , tblArticle
WHERE tblMember.memberID = tblArticle.memberID
and articleID = $ID
lillebrorMedlem sedan apr. 20041 687 inlägg
Nu fungerar det utmärkt! :e Tack för hjälpen!
Hur gör jag för att dela upp SQL-satsen på flera rader när jag låt säga använder mig av PHP. Det blir så otympligt att ha den på en ända lång rad!
LarsGMedlem sedan dec. 200012 465 inlägg
$q = "select date_time, headline, content, username " .
" FROM tblMember , tblArticle " .
" WHERE tblMember.memberID = tblArticle.memberID " .
" and articleID = " . $ID ;