本当の問題
関連するテーブルとその列
accounts [id,name]
rooms [id,name,topic,owner]
room_admins [account_id,room_id]
Q: すべてのルームを管理者 ID と所有者 ID とともに取得します。
もちろん、「すべて」には条件があります (上記: WHERE name LIKE ...)。管理者と所有者は、「管理者」と呼ばれる 1 つの列に返される必要があります。上記を1つの文字列に連結しようとしました。
私が試したこと
私は解決策を思いつきましたが、外側の SELECT ごとに変化するさまざまな外部変数 ":room_id" を使用する必要があるため、まったく意味がありません。
SELECT id,name,topic,
(SELECT GROUP_CONCAT(admins.account_id) AS owner
FROM
(SELECT account_id
FROM `room_admins`
WHERE room_id=:room_id
UNION
SELECT owner FROM `rooms` WHERE id=:room_id) admins) AS owner
FROM `rooms`
WHERE name LIKE "%htm%" OR topic LIKE "%htm%" LIMIT 20