MySQL“;或;结果是错误的”;“订购”;

MySQL“;或;结果是错误的”;“订购”;,mysql,Mysql,我得到了以下问题 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.

我得到了以下问题

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
似乎有效,但顺序是错误的(我可能错了-不是顺序)。它类似于组BY
t1
parent\u id

使用此表:

--------------
name  |  parent_id
a     |  501
b     |  750
c     |  501
d     |  750
--------------
我得到这个结果:

a
c
b
d
但我希望:

a
b
c
d
谢谢你的时间和帮助

更新:

@胡安·卡洛斯·奥罗佩扎,谢谢你。我在phpMyAdmin中运行了代码-结果相同。我改为“内部联接”,删除了WHERE t1.id(虽然没有影响),并在(501750)中使用了t1
parent_id`IN:


同样的结果

我发现了问题。。。数据在t1中。名称有缺陷。因此,查询实际上按其应有的方式工作。谢谢你们的帮助,伙计们

没有任何意义。试试
选择字符长度(t1.parent\u id)
也许你有特殊的字符。试着在这里复制样本,我们来看看你得到这个结果是什么意思?复制您得到的确切结果!顺便说一句,这是一个内部连接如果你直接在mySQL上运行代码得到相同的结果?附加提示您可以在(501750)中使用
t1.parent\u id<代码>其中t1.id
条件也没有任何意义。如果您想要
t2.display
有任何值,您不使用
左连接
使用
内部连接
而不是代替t1.parent\u id为int(11)
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
");