MySQL ORDER BY WITH JOIN

MySQL ORDER BY WITH JOIN,mysql,Mysql,下面是MySQL语句的php代码。我正在尝试按lname排序,这是members表中的姓氏。我尝试将成员作为members1,将内部成员作为members2,但该语句也会抛出一个错误。我认为问题在于,我有两个相同的列名,但按照连接示例的其他顺序,我看不到有相同数据列的特定情况。只要我在最后一行中没有注释,语句本身就可以正常工作 $sql=" SELECT * FROM members m JOIN paid p ON m.member_id = p.member_id WH

下面是MySQL语句的php代码。我正在尝试按lname排序,这是members表中的姓氏。我尝试将成员作为members1,将内部成员作为members2,但该语句也会抛出一个错误。我认为问题在于,我有两个相同的列名,但按照连接示例的其他顺序,我看不到有相同数据列的特定情况。只要我在最后一行中没有注释,语句本身就可以正常工作

$sql="
SELECT * 
  FROM members m
  JOIN paid p
    ON m.member_id = p.member_id 
 WHERE p.year = '$lastyear-12-31' 
   AND m.member_id NOT IN 
     ( SELECT x.member_id 
      FROM members x 
      JOIN paid y 
        ON x.member_id = y.member_id 
   WHERE y.year = '$thisyear-12-31') 
 ORDER 
      BY lname "

命名您的列。向要排序的列添加别名

$sql.="ORDER BY members.lname "

您应该很好。

您会遇到什么错误?可能是您在两个表中都有lname,paid和members。因此,您需要按members.lname订购,而不是在
paid
表中为什么有
lname
字段?您不应该跨不同的表复制数据。