加入选定的行

时间:2013-01-10 11:10:37

标签: mysql

首先,我发现了同形questionsanswers,但它们似乎在我的情况下似乎不起作用。

我有项目,我想显示相应的视频。视频链接存储在表格fe_media中,类型为Video。当前项目还有一些图像,这些图像存储在同一个表中,但类型为Image。所有这些记录都通过标准化表链接。

对于我所读过的内容,我的查询应如下所示:


SELECT project.id, project.title, media.type, media.link
FROM projects AS project
     LEFT JOIN norm_project_media AS norm ON norm.n_project_id = project.id
     LEFT JOIN media AS media ON media.id = norm.n_media_id 
                                 AND media.type = 'Video'
WHERE project.id = '".$item."'

我获得了所有项目结果,但媒体链接上有NULL。我知道$item值是正确的并且应该显示视频链接,因为当我在AND media.type = 'Video'子句后添加行WHERE时,它会显示视频链接。此解决方案的问题在于,当某个项目在fe_media表中没有视频时,不会显示任何内容(甚至不包括项目数据)。

:(

修改 修复错字,仍然是同样的问题

1 个答案:

答案 0 :(得分:0)

好的,明白了

我更改了media.link条记录的顺序,因此视频链接将位于顶部(高于所有NULL值),然后将限制设置为1条记录,如下所示:


SELECT project.id, project.title, media.type, media.link
FROM projects AS project
     LEFT JOIN norm_project_media AS norm ON norm.n_project_id = project.id
     LEFT JOIN media AS media ON media.id = norm.n_media_id AND media.type = 'Video'
WHERE project.id = '".$item."'
ORDER BY media.link DESC
LIMIT 1

也许不是最漂亮的解决方案,但至少它可行