Ik heb twee (eigenlijk meer, maar doet er voor dit probleem niet toe) tabellen, ChatUsers en ChatRooms.
In ChatUsers heb ik een kolom RoomID zitten om bij te houden in welke RoomID de user momenteel zit.
Met deze query:
wil ik alle Rooms weergeven en daarbij ook gelijk te weten komen of de User (in dit geval een user met id=4) in die kamer zit.
Deze query werkt perfect in 4.x versies van mysql; maar niet in 3.x versies, daar vertikt mysql het om die tabel te joinen waardoor Connected 0 is. Waarom is me een raadsel
Als ik overigens dit doe in een 3.x versie:
Dan krijg ik een overzicht van alle rooms met per room welke user er in zit. En zo ook user met id=4. Hij kan 't dus wel ....
Heel irritant, want dit moet ook met 3.x versies gaan werken en nu zoek ik dus een workaround in de vorm van een andere query (en géén extra query).
Iemand enig idee hoe ik die query in een andere vorm kan gieten waardoor ik in 1 query een overzicht kan krijgen van alle Rooms met daarbij aangegeven in welke Room een user met een bepaald ID zit?
ChatRooms bestaat alleen uit die twee kolommen die je ziet staan. en ChatUsers bevat dus een kolom RoomID waarmee je 'm op ChatRooms kan joinen.
p.s. aan subqueries heb ik dus ook niets omdat het ook in 3.x versies moet werken
In ChatUsers heb ik een kolom RoomID zitten om bij te houden in welke RoomID de user momenteel zit.
Met deze query:
MySQL:
1
2
3
4
5
| SELECT CR.RoomID, CR.RoomName, CU.UserID, IF(CU.UserID IS NOT NULL, 1, 0) AS Connected FROM ChatRooms AS CR LEFT JOIN ChatUsers AS CU ON CU.RoomID=CR.RoomID AND CU.UserID=4 ORDER BY RoomName |
wil ik alle Rooms weergeven en daarbij ook gelijk te weten komen of de User (in dit geval een user met id=4) in die kamer zit.
Deze query werkt perfect in 4.x versies van mysql; maar niet in 3.x versies, daar vertikt mysql het om die tabel te joinen waardoor Connected 0 is. Waarom is me een raadsel
Als ik overigens dit doe in een 3.x versie:
MySQL:
1
2
3
4
5
| SELECT CR.RoomID, CR.RoomName, CU.UserID, IF(CU.UserID IS NOT NULL, 1, 0) AS Connected FROM ChatRooms AS CR LEFT JOIN ChatUsers AS CU ON CU.RoomID=CR.RoomID ORDER BY RoomName |
Dan krijg ik een overzicht van alle rooms met per room welke user er in zit. En zo ook user met id=4. Hij kan 't dus wel ....
Heel irritant, want dit moet ook met 3.x versies gaan werken en nu zoek ik dus een workaround in de vorm van een andere query (en géén extra query).
Iemand enig idee hoe ik die query in een andere vorm kan gieten waardoor ik in 1 query een overzicht kan krijgen van alle Rooms met daarbij aangegeven in welke Room een user met een bepaald ID zit?
ChatRooms bestaat alleen uit die twee kolommen die je ziet staan. en ChatUsers bevat dus een kolom RoomID waarmee je 'm op ChatRooms kan joinen.
p.s. aan subqueries heb ik dus ook niets omdat het ook in 3.x versies moet werken