mysql> SELECT 'STATUS',
status
FROM (SELECT ujm.user_id AS userId,
ujm.job_id AS jobId,
ujm.job_run_name AS jobRunName,
j.response_payload -> '$.isSuccessful' AS isSuccessful,
j.response_payload -> '$.error' AS errors,
j.response_payload -> '$.destinationDetails' AS destinationDetails,
s.name AS statusType
FROM user_job_mappings ujm
JOIN jobs j ON ujm.job_id = j.id AND j.is_deleted = 0
JOIN status_types s ON j.status_type_id = s.id AND s.is_deleted = 0
WHERE ujm.user_id = 24301
AND ujm.is_deleted = 0
order by ujm.job_id limit 1 offset 0
) jobs_data\G
错误 1054 (42S22):“字段列表”中的未知列“状态”
mysql> SELECT 'STATUS',
status
FROM ( SELECT ujm.user_id AS userId,
ujm.job_id AS jobId,
ujm.job_run_name AS jobRunName,
j.response_payload -> '$.isSuccessful' AS isSuccessful,
j.response_payload -> '$.error' AS error,
j.response_payload -> '$.destinationDetails' AS destinationDetails,
s.name AS status
FROM user_job_mappings ujm
JOIN jobs j ON ujm.job_id = j.id AND j.is_deleted = 0
JOIN status_types s ON j.status_type_id = s.id AND s.is_deleted = 0
WHERE ujm.user_id = 24301
AND ujm.is_deleted = 0 limit 1 offset 0
) jobs_data\G
*************************** 1. row ***************************
STATUS: STATUS
status: SUCCESSFUL
1 row in set (0.00 sec)
我有这两个疑问。两个查询中唯一的区别是内部查询中状态使用的别名,但其中一个给出错误,我不明白为什么?
两个查询中唯一的区别是用于状态的别名 在内部查询中,但出现错误,我不明白为什么?
不。这不是唯一的区别。
问题出在第一个查询中的状态列上,在子查询中找不到该状态列,因为没有状态列。
在第二个查询中,您有
s.name AS status
这就是第二个查询有效的原因