stackoverflowで複数の回答を試しましたが、問題に対する適切な解決策が見つからないようです。私が今試している現在のクエリは次のとおりです。
SELECT (
SELECT * FROM mds_media
) AS m
(
SELECT video_id FROM mds_featured WHERE video_id = m.id
) AS f
ORDER BY f.video_id DESC, m.id DESC
JOINingもやってみました
SELECT mds_media.*, mds_featured.* FROM mds_media AS m
JOIN mds_featured
ON mds_featured.video_id = m.id
ORDER BY mds_featured.video_id DESC, mds_media.id DESC
私がしたいのは、mds_featured列video_idが、見つかったメディアのIDである場合、全体の結果に添付することだけです。したがって、私のmysql_fetch_array()は、たとえば次のように出力します。
array(id、name、blah、blah、blah、video_id)//もちろん値を含む// IF mds_featuredには、そのvideo_id列にmds_mediaのidと同じ値の行があります
また
array(id、name、blah、blah、blah)//ifmds_featured.video_idにmds_media.idに存在する行がない場合
解決策を提供する際の提案/役立つヒントに感謝します。私は正しく読んでいないか、どこかで混乱していて、私が見た答えは私を助けていません。私がすでにこれを解決できて、提供された解決策を持っていなかったら申し訳ありません。
テーブルが分離している理由があるため、featured/video_idを含む列を持つようにデータベーステーブルを変更する予定はありません。
他の人のために将来参照するために作業コードを更新しました:
SELECT m.id, m.name, mds_featured.video_id
FROM mds_media m
LEFT JOIN mds_featured
ON mds_featured.video_id = m.id
ORDER BY mds_featured.video_id DESC, m.id DESC
Vatevに感謝します