在链表查询时,两个表有两个字段名是相同的即Id,现只需要第一个表的Id输出,第二张表输出除了Id字段的其他字段?能办到吗?
tab1
Id name 等等tab2
Id id(这个与表一Id相同)img 等等结果
Id name id 等等 
selsct 字段 可以直接查询出来, 但是当表二字段有一定数量时就不好办了 有没有什么办法解决 我是新手!SQL语句不太熟悉 求大神决解!!!!!!

解决方案 »

  1.   

    简单地方法就是将1表的ID更名,如
    select t1.id as newid,t2.* from t1 inner join t2 on ....
      

  2.   

    要求是什么?你在1楼两个表有两个字段名是相同的即Id,现只需要第一个表的Id输出,第二张表输出除了Id字段的其他字段?
      

  3.   


    抱歉  我的失误!我在说下要求吧!谢谢啦·····在链表查询时,两个表有两个字段名是相同的即Id,现需要输出第一个表的全部字段,第二张表输出除了Id字段的其他字段?能办到吗?
    tab1
    Id name 等等(字段名)tab2
    Id id(这个与表一Id相同)img 等等 (字段名)结果
    Id name id 等等 
    (表一的全部字段)+(表二除了Id的所有字段)
    selsct 字段 可以直接查询出来, 但是当表二字段有一定数量时就不好办了 有没有什么办法解决 我是新手!SQL语句不太熟悉 求大神决解!!!!!!
      

  4.   

    1、修改其中1个表中的ID字段名;
    2、从系统表中取得所有字段名,字符串累加生成SQL语句再执行
      

  5.   

    select *
    from tab1 left join tab2 using (Id)
      

  6.   


    谢谢这位朋友的方法啊 
     修改字段会影响其他地方的逻辑所以没有,第二个方法很实用,SHOW COLUMNS FROM `tbl2`得到表二的所有字段在遍历出来,在遍历的时候if判断去除不需要的字段叠加字符串最后执行语句,决解了表二字段多的问题不需要手动敲了 谢谢了啊!!!
      

  7.   


    谢谢你的回复!  using 我一直不知道有这个 百度了一下 上面的解释是LEFT JOIN 正常写法:     SELECT t1.id,t2.name FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE ....其实也可以这么写:     SELECT t1.id,t2.name FROM t1 LEFT JOIN t2 USING(id) WHERE ....
    这个样子的 和我的目的不太一样 不过还是谢谢你