在开始时,我想说我不确定该主题的名称,所以如果有人建议改进它,请输入你的建议。
以下是我创建数据库结构的SQL查询:
CREATE TABLE display_campaign (
files_id integer[] DEFAULT '{-1}' NOT NULL,
campaign_id integer NOT NULL,
files_display_length integer[] DEFAULT '{-1}' NOT NULL
)
CREATE TABLE display_files (
file_id integer NOT NULL,
files_source text NOT NULL,
files_display_name text NOT NULL
)
我创建了一个查询,根据“campaign_id”基于“campaign_id”来自“display_files”表选择文件来自“display_campaign”
SELECT * FROM "display_files" WHERE array["file_id"] && ANY( SELECT "files_id" FROM "display_campaigns" WHERE "campaign_id" = '1')
示例结果表看起来像
file_id | file_source | file_display_name
--------+-----------------+------------------
1| {PLAYLIST}/1.mp4| ADV1
3| {PLAYLIST}/2.mp4| ADV2
我希望那样:
file_id | file_source | file_display_name|file_display_length
--------+-----------------+------------------+-------------------
1| {PLAYLIST}/1.mp4| ADV1| 10000
3| {PLAYLIST}/2.mp4| ADV2| 17000
有什么建议吗?
@Edit: files_id和files_display_length索引是相同的。这意味着files_display_length [0]是files_id [0]等的属性。
答案 0 :(得分:1)
您需要加入这些表格。 display_campaign.files_id是否等于display_files.file_id?
SELECT df.*, files_display_length FROM display_files df join
display_campaign dc on df.file_id = dc.files_id
WHERE dc.campaign_id = '1'