mysql在单个查询中获取父记录和子记录

时间:2014-01-08 18:42:54

标签: mysql oracle

我使用以下代码使用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

2 个答案:

答案 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