我在 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
我也试过加入
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) //当然包含值 //如果 mds_featured 在它的 video_id 列中存在与来自 mds_media 的 id 相同的值的行
或者
array(id,name,blah,blah,blah) //如果 mds_featured.video_id 没有带有 mds_media.id 的行
感谢提供解决方案的任何建议/有用提示。要么我没有正确阅读,要么我在某个地方搞砸了,我看到的答案对我没有帮助。抱歉,如果我已经解决了这个问题并且没有提供的解决方案。
我不打算将我的数据库表更改为包含 feature/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
感谢瓦特夫