SELECT me.messageId, me.subject, me.insertDate, mr.fName, mr.lName
FROM message me
INNER JOIN member mr
ON ( mr.memberId = me.fromId )
ORDER BY me.insertDate DESC
Jag skulle vilja ha med tabellen recievers i sql-frågan också. Jag vill joina tabellen recievers (med tabellen message) på fälten messageId, och räkna hur många poster som finns där fromId har ett visst värde. Med andra ord vill jag ha med en count(*) från tabellen recievers. Var och hur lägger jag in den?
SELECT me.messageId, me.subject, me.insertDate, mr.fName, mr.lName, (select count(*) from receivers
where messageid = me.messageid) as receivers
FROM message me
INNER JOIN member mr
ON ( mr.memberId = me.fromId )
ORDER BY me.insertDate DESC
SELECT me.messageId, me.subject, me.insertDate, mr.fName, mr.lName, (select count(*) from receivers
where messageid = me.messageid) as receivers
FROM message me
INNER JOIN member mr
ON ( mr.memberId = me.fromId )
ORDER BY me.insertDate DESC
Jag jublade nog lite tidigt, dessutom hade jag nog skrivit fel i min join ovan, dvs jag hade inte följt min egen tabellstruktur.
Följande rad är inte jämförbar:
ON ( mr.memberId = me.fromId )
för tabellen message har inget fromId, utan det är tabellen recievers som har den relationen. Detta innebär att jag inte kan joina tabellerna message och member på det viset.
Läget är enligt följande. 3 tabeller enligt ovan för en pm-tjänst. Man kan skicka ett meddelande till flera/många medlemmar. När jag presenterar mappen "skickat" för en medlem, då tänkte jag presentera följande:
* subject
* insertDate
* samt fName och lName (på mottagare) om det bara finns en mottagare. Finns det många mottagare ska jag istället skriva ut en länk till ett pop-upfönster där jag listar mottagarna.
Kortfattat:
Jag vill hämta subject och insertDate från tabellen message
Jag vill hämta fName och lName från tabellen member
Jag vill räkna antal mottagare i tabellen recievers där messageId har en relation med messageId i tabellen message