フォロワー、ユーザー、ミックス、曲の 4 つのテーブルがあります。現在、1 人のユーザーのすべてのフォロワーからすべてのミックスを取得しようとしています。私のクエリは私に結果を与えていますが、各結果は、1つのミックスの各結果内の曲の配列ではなく、ミックスの1つの曲に対するものです...どんな助けも素晴らしいでしょう、私のSQLスキルは最高ではなく、私は費やしましたこれを理解しようとするのに多くの時間がかかりました!
私の現在のクエリは次のとおりです。
SELECT followers.following_id, users.id, users.user_username, mixes.id, mixes.mix_created_date, mixes.mix_name,songs.song_artist
FROM followers, users, mixes,songs
WHERE followers.user_id = 46
AND users.id = followers.following_id
AND mixes.user_id = followers.following_id
AND mixes.id > 0
ORDER BY mixes.mix_created_date DESC
LIMIT 10
現在の結果は(これをcakephpカスタムクエリで実行した結果)
Array
(
[0] => Array
(
[followers] => Array
(
[following_id] => 47
)
[users] => Array
(
[id] => 47
[user_username] => someguy
)
[mixes] => Array
(
[id] => 45
[mix_created_date] => 2012-07-21 2:42:17
[mix_name] => this is a test
)
[songs] => Array
(
[song_artist] => Yo La Tengo
)
)
[1] => Array
(
[followers] => Array
(
[following_id] => 47
)
[users] => Array
(
[id] => 47
[user_username] => someguy
)
[mixes] => Array
(
[id] => 45
[mix_created_date] => 2012-07-21 2:42:17
[mix_name] => this is a test
)
[songs] => Array
(
[song_artist] => Animal Collective
)
)
ミックスIDが同じであることがわかるように、次のような各結果内の配列になるように曲を取得しようとしています:
Array
(
[0] => Array
(
[followers] => Array
(
[following_id] => 47
)
[users] => Array
(
[id] => 47
[user_username] => someguy
)
[mixes] => Array
(
[id] => 45
[mix_created_date] => 2012-07-21 2:42:17
[mix_name] => this is a test
)
[songs] => Array
(
[0]=>array(
['song_artist'] => Yo La Tengo
),
[1]=>array(
['song_artist'] => Animal Collective
)
)
)
これがたった1つのSQL文でできることを本当に望んでいます! 前もって感謝します!