私のアプリケーションは、関係テーブルを含むテーブルを使用します。ビデオをカテゴリ、俳優、およびタグ GROUP_CONCAT と SQL で DISTINCT に接続するために使用します。
私が直面している問題は、俳優の親指も出力することですが、俳優のサムネイルがまだ存在しない場合があります。この場合、group_concat を含む行で生成する値は、3 つのアクターが一意であるため、アクター フィールドと一致していませんが、画像 (null) のない 2 つのアクターがある場合、それらへのアンカーを失いました。
例えば
SELECT
videos.id AS id,
videos.video_title AS video_title,
videos.video_views AS video_views,
videos.video_likes AS video_likes,
videos.video_dislikes AS video_dislikes,
videos.video_duration AS video_duration,
GROUP_CONCAT(DISTINCT a.actor_name SEPARATOR ';') AS actor_names,
GROUP_CONCAT(DISTINCT t.tag_name SEPARATOR ';') AS tag_names,
GROUP_CONCAT(DISTINCT c.category_name SEPARATOR ';') AS category_names,
GROUP_CONCAT(DISTINCT a.actor_thumb SEPARATOR ';') AS actor_thumbs
FROM videos
LEFT OUTER JOIN video_actors AS va ON va.video_id = videos.id
LEFT OUTER JOIN actor AS a ON a.actor_id = va.actor_id
LEFT OUTER JOIN video_tags AS vt ON vt.video_id = videos.id
LEFT OUTER JOIN tags AS t ON t.tag_id = vt.tag_id
LEFT OUTER JOIN video_categories AS vc ON vc.video_id = videos.id
LEFT OUTER JOIN categories AS c ON c.category_id = vc.category_id
WHERE videos.id = '23'
アクターの親指フィールド 結果:
more fields.. |0;http://site.com/actor/59.jpg
ただし、次のようにする必要があります (俳優 3 人、サムネイルなしの 2 人):
more fields.. |0;0;http://site.com/actor/59.jpg
アクター名に対する値を一致させます。
これが少し明確であることを願っています。
前もって感謝します!ニック