我已经尝试了多个stackoverflow上的答案,我似乎无法找到适当的解决方案来解决我的问题。我想现在当前查询为:使用多个选择或JOIN ON在列表中添加列响应
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有一行存在与mds_media中id相同的值在它的VIDEO_ID柱
或
阵列(ID,姓名,等等,等等,等等) // IF mds_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
您不能在每行中使用不同数量的列的结果集。一个'LEFT JOIN'将允许你从mds_media获得所有的记录,在非特征的记录中有一些NULL。 – Vatev 2013-03-12 17:26:35
谢谢你的回答。我先试了一下,并成功,但我的ID列正在消失。两个表都有一个id列。让我重温一下:没有特色的东西没有id列。 – LmOtaku 2013-03-12 17:31:07
只是一个猜测,但也许你不应该从两个选择'*'? – Vatev 2013-03-12 17:32:18