如何通过MYSql查询获取父母姓名
我有以下查询:
SELECT ty.id, ty.type, ty.pid, if(ty.pid = 0, '-',
(select ty.type from bid_type ty where ty.pid != 0 and ty.id = ty.pid)) as parent,
ty.code, ty.description, ty.icon,
date_format(ty.adate, '%m-%d-%Y %H:%i:%s') as adate,
date_format(ty.edate, '%m-%d-%Y %H:%i:%s') as edate, ty.status
FROM (bid_type ty)
我想通过此查询获取孩子的“父母”。但它为“父级”返回空结果。有人可以指导我我做错了什么以及如何纠正吗?
提前致谢
I have following query :
SELECT ty.id, ty.type, ty.pid, if(ty.pid = 0, '-',
(select ty.type from bid_type ty where ty.pid != 0 and ty.id = ty.pid)) as parent,
ty.code, ty.description, ty.icon,
date_format(ty.adate, '%m-%d-%Y %H:%i:%s') as adate,
date_format(ty.edate, '%m-%d-%Y %H:%i:%s') as edate, ty.status
FROM (bid_type ty)
I want to get 'parent' of child through this query. But it is returning empty result for 'parent'. Can some one guide me what Iam doing wrong and how it can be rectified.
Thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试为两个表指定不同的别名。在您的代码中,
bid_type
被别名为ty
两次。Try giving the two tables different aliases. In your code,
bid_type
is aliased toty
twice.您需要正确地为表添加别名才能获取所需的数据。此外,不应使用子查询来选择父类型,而应使用 JOIN。可能是外连接,因为您的查询意味着该表中的父子关系是可选的。
这应该适合你:
You need to alias your tables properly to get the data you want. Also, instead of using a sub-query to select the parent type, you should use a JOIN. Probably an outer join since your query implies that the parent-child relationship in this table is optional.
This should work for you: