我得到了以下查询。
SELECT t1.parent_id
, t1.id
, t2.slug
FROM t1
LEFT
JOIN t2
ON t2.node_id = t1.id
WHERE t1.id
AND
( t1.parent_id = 501
OR t1.parent_id = 750
)
AND t2.display = 1
AND t2.active = 1
ORDER
BY t1.name ASC
似乎有效,但排序错误(我可能错了 - 不是订购)。它就像GROUP BY t1
。parent_id
...
使用此表:
--------------
name | parent_id
a | 501
b | 750
c | 501
d | 750
--------------
我得到了这个结果:
a
c
b
d
但我希望如此:
a
b
c
d
感谢您的时间和帮助...
更新:
@Juan Carlos Oropeza谢谢你。我在phpMyAdmin中运行代码 - 结果相同。我改为INNER JOIN并删除了WHERE t1.id(尽管没有伤害)并使用t1.
parent_id`IN(501,750)代替:
mysql_query("
SELECT
`t1`.`parent_id`,
`t1`.`id`,
`t2`.`slug`
FROM
`t1`
INNER JOIN
`t2` ON `t2`.`node_id` = `t1`.`id`
WHERE
`t1`.`parent_id` IN (501, 750)
AND
`t2`.`display` = 1
AND
`t2`.`active` = 1
ORDER BY
`t1`.`lft`
ASC
");
相同的结果
答案 0 :(得分:0)
我发现了问题......数据在t1.name中存在缺陷。所以查询实际上应该有效。谢谢你的帮助!