【发布时间】:2021-05-27 05:27:07
【问题描述】:
运行以下查询时,我收到 1054 错误,指出字段列表中的未知列是“rct.trial_id”。但据我所知,我的语法是正确的。任何帮助将不胜感激!
select
r.id,
rv.segment_cytoband,
rv.variant_category,
rv.gene,
rv.variant,
ra.sensitive_tier1,
ra.contraindicated_tier1,
ra.sensitive_tier2,
ra.contraindicated_tier2,
rv.cdna,
rv.type as 'Variant Type',
r.last_published,
r.status,
spm.property_name,
sp.property_value as 'oncotreeCode',
r.tumor_cellularity,
s.lims_sample_id,
sr.sample_run_lims_id,
count(distinct rct.trial_id) as 'No. of Trials 1',
count(distinct ract.trial_id) as 'No. of Trials 2'
from report r
LEFT JOIN report_variants rv ON r.id = rv.report_id
LEFT JOIN report_assays ra ON r.id = ra.report_id
LEFT JOIN report_samples rs ON r.id = rs.report_id
LEFT JOIN sample_run sr ON rs.sample_run_id = sr.id
LEFT JOIN sample s ON sr.sample_id = s.id
LEFT JOIN run rn ON sr.run_id = rn.id
LEFT JOIN sample_properties_master spm ON rn.run_combination_id = spm.run_combination_id
LEFT JOIN sample_properties sp ON sr.sample_id = sp.sample_id
LEFT JOIN
(select rv.report_id, count(distinct rct.trial_id) from report_clinical_trials rct
INNER JOIN report_variants rv on rv.id = rct.report_variant_id) as rcttrial ON rv.id = rct.report_variant_id
LEFT JOIN
(select ra.report_id, count(distinct ract.trial_id) from report_assays_clinical_trials ract
INNER JOIN report_assays ra on ra.id = ract.report_assay_id) as racttrial ON ra.id = ract.report_assay_id
where r.status = 'REPORT EXPORTED'
having spm.property_name like 'oncotreeCode';
【问题讨论】:
-
您不能从主查询访问子查询中的表。
-
Rct 别名是在子查询中定义的,因此您必须在外部查询中使用子查询的别名。
-
我尝试了 Barmar 下面建议的查询,但出现 1054 错误,即 rct.report_report_variant_id 上有一个未知列。我相信这是带有子查询的 LEFT JOIN 所在的位置。我试图做 rv.id = rcttrial.report_variant_id 但收到同样的错误
-
我想我让它工作了。我将在下面发布代码
标签: mysql sql mysql-error-1054