select l.linkid,n.nodename,n.nodename from links l,nodes n where l.enternodeid=n.nodeid and l.exitnodeid=n.nodeid  and l.linkid=1
这个SQL语句查询的时候不报错,也不现实数据
还有就是l.enternodeid=n.nodeid and l.exitnodeid=n.nodeid 是这样的  两个字段要根据一个字段查询不同的数据
例如:表1  enternodeid     exitnodeid        表2  nodeid     nodename 
              1               2                    1        未央路立交
              3               2                    2        太白路立交
                                                   3        含光路
怎么办?

解决方案 »

  1.   

    从你给的例子看,你要的结果应该这样改
    l.enternodeid=n.nodeid and l.exitnodeid=n.nodeid
    改成
    l.enternodeid=n.nodeid or l.exitnodeid=n.nodeid
      

  2.   

    例如:表1 enternodeid exitnodeid            表2 nodeid   nodename  
                  1          2                       1      未央路立交
                  3          2                       2      太白路立交
                                                     3      含光路
      

  3.   


    好像不对啊,给成上面写的那样,就会把所有的信息显示出来了,我只显示linkid=1的数据
      

  4.   

    表1:links
    (
      linkid   编号
      enternodeid   起始路段编号 
      exitnodeid    终止路段标号 
    )
    表2:nodes
    (
      nodeid  路段编号
      nodename   路段名称
    )
    enternodeid、exitnodeid的编号和nodeid的编号有关
    根据linkid查询 起始路段名称,终止路段名称 
      

  5.   

    试试吧……
    select linkid,
    (select max(nodename)from nodes n where l.enternodeid = n.nodeid),--起始路段名称
    (select max(nodename)from nodes n where l.exitnodeid = n.nodeid)--终止路段名称
    from links l
      

  6.   

    select l.linkid, n.nodename, m.nodename
      from links l, nodes n, nodes m
     where l.enternodeid = n.nodeid
       and l.exitnodeid = m.nodeid
       and l.linkid = 1
      

  7.   

    LZ得去补补sql基础……and的意思是且, 比如说对于n.nodeid=1的一条记录,只有l.enternodeid和l.exitnodeid都等于1的情况下才会关联出来LZ的需求木有表述清楚,你要查出什么样的数据啊?
      

  8.   

    不用两个别名,如何获取两个nodename?系统肯定会报错了。