[英]MySQL Issue: Inner Join with Subquery returning no results
我有一个数据库,其中包含一组具有不同表单版本版本的表单。 下面的“有效”查询按每个表单版本的批准使用日期成功选择了最新的表单版本。
我想将此查询“工作”查询与另一个表“ forms_types”结合起来,该表返回“ form_type”列的全文描述。
我这样做的尝试不起作用-我也应该在查询的“联接”版本上获得50个结果,但它不返回任何结果。
让我的工作查询正确加入,将不胜感激!
工作(50个结果,但没有JOIN):
SELECT *
FROM forms AS t
WHERE california =
(
SELECT MAX(california)
FROM forms
WHERE `form_number` = t.`form_number`
AND trucking_coverage= 1
AND california IS NOT NULL
AND california <= '2014-01-29'
AND form_type <> 0
)
ORDER BY `t`.`form_type` ASC, `t`.`form_number` ASC
不起作用(无结果):
SELECT *
FROM forms AS t
INNER JOIN forms_types
ON 'forms.form_type' = 'forms_types.form_type'
WHERE california =
(
SELECT MAX(california)
FROM forms
WHERE `form_number` = t.`form_number`
AND trucking_coverage= 1
AND california IS NOT NULL
AND california <= '2014-01-29'
AND form_type <> 0
)
ORDER BY `t`.`form_type` ASC, `t`.`form_number` ASC
您是否正在寻找这样的东西?
SELECT f.*, t.*
FROM
(
SELECT form_number, MAX(california) california
FROM forms
WHERE trucking_coverage = 1
AND california IS NOT NULL
AND california <= '2014-01-29'
AND form_type <> 0
GROUP BY form_number
) q JOIN forms f
ON q.form_number = f.form_number
AND q.california = f.california JOIN forms_types t
ON f.form_type = t.form_type
ORDER BY f.form_type, f.form_number
也可以用这种方式重写(通过利用非标准的MySQL GROUP BY
扩展名)
SELECT *
FROM
(
SELECT *
FROM forms f JOIN forms_types t
ON f.form_type = t.form_type
WHERE f.trucking_coverage = 1
AND f.california IS NOT NULL
AND f.california <= '2014-01-29'
AND f.form_type <> 0
ORDER BY california DESC
) q
GROUP BY f.form_number
ORDER BY f.form_type, f.form_number
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.