0

我正在尝试根据member_id,parent_idsponsor_idmember_tree表中从表“成员”中获取 parent_name 和赞助商名称。

我尝试了以下查询,但我不知道为什么它不起作用。

SELECT mt.member_id, mt.parent_id, mt.sponsor_id, mt.member_name, m.member_name as parent_name , m1.member_name as sponsor_name 
FROM `member_tree` mt 
LEFT JOIN `member` m ON mt.parent_id = m.member_id 
LEFT JOIN `member` m1 ON mt.sponsor_id = m1.member_id 
WHERE mt.`member_id` IN ( 1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,1000026,1000027,1000028,1000029,1000030 )

mysql表

谢谢你。

4

3 回答 3

1

此查询工作正常,您可以在小提琴http://sqlfiddle.com/#!2/499e95/1中检查它

只要确保

您是否在两个表中都有 member_name 字段,因为您已经编写了 mt.member_name,并且mt 指的是member_tree

如果您在 member_tree 表中没有成员名称,请使用小提琴http://sqlfiddle.com/#!2/5d2bd/1中的此查询

SELECT mt.member_id, mt.parent_id, mt.sponsor_id, m.member_name, 
m1.member_name as parent_name , m2.member_name as sponsor_name 
FROM `member_tree` mt 
LEFT JOIN 
`member` m ON mt.member_id = m.member_id 
LEFT JOIN 
`member` m1 ON mt.parent_id = m1.member_id 
LEFT JOIN 
`member` m2 ON mt.sponsor_id = m2.member_id 
WHERE mt.`member_id` 
IN (1000015,1000016,1000017,1000018,1000019,1000020,1000021,1000022,1000023,1000024,1000025,100    0026,1000027,1000028,1000029,1000030 )
于 2013-10-16T11:20:08.487 回答
0

对我来说看起来不错 - 尽管我可能会这样写。

于 2013-10-16T10:50:04.700 回答
0

您能否确保 parent_id 和赞助商 ID 存在外键。如果不是,您可以检查 member_ids 1000007 到 1000014 是否存在于成员表中。

于 2013-10-16T11:03:46.223 回答