我使用以下代码使用fld_tmp获取父记录及其相关记录。如果具有fld_tmp id的子记录是98795,则表示父记录。下面的查询返回错误表q不存在。< / p>
select fld_id,fld_date,fld_pay_total,fld_user_id
from tbl_paymet q where fld_id=98795 and fld_tmp=0
union
select t1.fld_id,t1.fld_date,t1.fld_pay_total,t1.fld_user_id
from tbl_paymet t1 left join q on t1.fld_tmp=q.fld_id
答案 0 :(得分:1)
MySQL LEFT JOIN
中引用的每个表都需要拼写完整,它不能使用以前定义的别名。但是,您可以为连接本身分配新别名。
答案 1 :(得分:0)
请尝试这个,我认为您不需要UNION
,我认为您不需要fld_tmp=0
,因为您知道您要查找的记录的ID但它把它放在那里并没有伤害。
select fld_id,fld_date,fld_pay_total,fld_user_id
from tbl_paymet q
where (fld_id=98795 and fld_tmp=0)
or (fld_tmp=98795)
order by fld_tmp asc