首先,我发现了同形questions和answers,但它们似乎在我的情况下似乎不起作用。
我有项目,我想显示相应的视频。视频链接存储在表格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
表中没有视频时,不会显示任何内容(甚至不包括项目数据)。
:(
修改 修复错字,仍然是同样的问题
答案 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
也许不是最漂亮的解决方案,但至少它可行