有三张表分别是Script,Tag,ScriptToTag其中script和tag表的关系是通过ScriptToTag表关联的。
数据例如:Script 表ID       Name1000     BMW
1001     SONY
1002     IBM 
Tag 表ID      Name 100     T1
101     T2
102     T3ScriptToTag 表ID      ScriptID    TagID3000     1000       101
3001     1001       102
3002     1002       100如何根据这三张表,取出Scirpt和Tag表中的数据呢?关键不清楚如何利用ScriptToTag将两者联系起来的select语句如何写,并且要放到临时表中,然后传出查询结果后,再将临时表删除,因为是新手,没写过这样复杂的,请各位高人指点,多谢?

解决方案 »

  1.   


    --直接连接就行了。
    select a.name,c.name as tname
    from script a join scripttotag b on a.id=b.scriptid
    join tag c on b.id=c.tageid
      

  2.   

    --直接连接查询即可,不需要用临时表!
    select * from ScriptToTag a 
    left join Script b on a.ScriptID=b.ID
    left join Tag c on a.TagID=c.ID
      

  3.   

    --如果用临时表是这样的,但是多此一举呀
    select a.*,b.name as bname,c.name as cname into #T from ScriptToTag a 
    left join Script b on a.ScriptID=b.ID
    left join Tag c on a.TagID=c.ID--删除临时表
    drop table #T
      

  4.   


    select a.*,c.*
    from script a,scripttotag b,tag c
    where a.id=b.scriptid and b.id=c.tageid
      

  5.   

    select * from ScriptToTag a left join Script b on a.ScriptID=b.ID left join Tag c on a.TagID=c.ID
      

  6.   

    select * 
    from script a,scripttotag b,tag c
    where a.id=b.scriptid and b.id=c.tageid直接连
      

  7.   

    select s.* , t.* from scirpt s , tag t ,ScriptToTag st
    where s.id = st.ScriptID and st.TagID = t.id这个三表关联字段清楚,没你想象的那么复杂.