有一张操作表,里面存储两个用户的ID,一个是管理员一个是操作员,还有一张对照用户表有两个字段USER_ID和USER_NAME,想通过操作表中的用户ID从对照表中选择出用户的姓名来,写了一条语句,但是有错误SELECT UI.USER_NAME AS UN1,UI.USER_NAME AS UN2 
FROM CARINFO CI,USERINFO UI 
WHERE CI.REGISTER_USER_ID = UN1 AND CI.LEADER_ID = UN2

解决方案 »

  1.   

    SELECT UI.USER_NAME AS UN1,UI.USER_NAME AS UN2 
    FROM CARINFO CI,USERINFO UI 
    WHERE CI.REGISTER_USER_ID = UI.USER_NAME  AND CI.LEADER_ID = UI.USER_NAME
      

  2.   

    假设操作表名为 table1,对照表名为table 2;
    select table1.id,table2.name from table1 left join table2 on table1.id = table2.id;
      

  3.   

    是不是这个意思啊SELECT ui.user_name
    FROM CARINFO CI inner join USERINFO UI on ci.user_id=ui.user_id
    WHERE ci.身份=“用户”
      

  4.   

    select
    (select USER_NAME from USERINFO where UN1 =  USERINFO.REGISTER_USER_ID),
    (select USER_NAME from USERINFO where UN2 = USERINFO.LEADER_ID)
    FROM CARINFO
    这个是LZ要的吧?只有名字
      

  5.   

    最好用标准连接。 反则会出现一些莫名其妙的错误拉。
    而且我同意 
    zhoulin777(天晴) ( ) 信誉:100    Blog  
    的看法。 这样还会避免空数据的出现。 
      

  6.   

    感覺還是需要用左連接,也就是livode的那種做法!根據需求也只能那樣做,不然少了約束條件