/ / subquery não está funcionando no mysql - mysql, subquery

subquery não está funcionando no mysql - mysql, subquery

Esta é minha consulta mysql

  SELECT tm.MAGAZINE_ID, tm.MAGAZINE_NAME,tm.MAGAZINE_DESCRIPTION,pub.publisher_name,
tmi.COVER_PAGE_THUMB AS COVER_PAGE_VERTICAL,tmi.FROM_DATE AS ISSUE_DATE,
tm.html_flag AS HTML_EXIST,tm.CATEGORY_ID,tm.language_id,tm.is_free,tma.AppUrl,
(SELECT issue_id from tbl_magazine_issue WHERE magazine_id = 141
ORDER BY FROM_DATE DESC LIMIT 1) as temp_issue_id
FROM tbl_magazine_apps as tma
LEFT OUTER JOIN tbl_magazine_code as tmc ON tmc.Code = tma.AppsCode
LEFT OUTER JOIN `tbl_magazine` AS tm ON tmc.magazine_Id = tm.MAGAZINE_ID
JOIN `tbl_magazine_issue` AS tmi ON temp_issue_id = tmi.issue_id
LEFT OUTER JOIN mst_publisher AS pub ON tm.publisher_id=pub.publisher_id
WHERE
tmi.PUBLISH_STATUS IN(1,3)
AND tmi.`OS_SELECT` = "".$osType.""
AND tma.id IN (".$appIds.")
GROUP BY tm.MAGAZINE_ID
ORDER BY tmi.ISSUE_DATE DESC

mas eu tenho um erro que

  #1054 - Unknown column "temp_issue_id" in "on clause"

se alguém souber disso, por favor me ajude. Eu sou novo nisso

Respostas:

0 para resposta № 1

AFAIK A subconsulta pertence à parte: http://dev.mysql.com/doc/refman/5.7/en/from-clause-subqueries.html Então eu iria juntar a subconsulta.

Gostar:

SELECT a.a, b.b
FROM table1 as a
JOIN (SELECT b from table2) as b ON a.key = b.key;

0 para resposta № 2

Como a mensagem sugere, a coluna temp_issue_id não está em nenhuma das tabelas a seguir: tbl_magazine_apps, tbl_magazineou tbl_magazine_issue. Também não é uma variável no ambiente.

Além disso, é praticamente impossível para qualquer um descobrir como consertar o problema sem mais conhecimento sobre a estrutura de dados.

Se eu fosse arriscar um palpite, com base nos nomes das tabelas, essa junção específica seria:

            JOIN `tbl_magazine_issue` AS tmi ON tm.magazine_id = tmi.magazine_id

porque faz sentido para mim que uma edição de revista seja conectada a uma revista. Eu não tenho ideia do que temp_issue_id é, no entanto.


0 para resposta № 3

temp_issue_id dar nome alias para especificar esta coluna eu acho que deveria ser tm.issue_id


0 para a resposta № 4

temp_issue_id é o nome da coluna conforme a consulta. Você precisa convertê-la em tabela e usar a coluna subsequente na sua cláusula SELECT.