最先听说,用别名:结果是:结果集增加了一个 别名列。没法去重,还多加了一个列。~~~~
先是百度到这个答案:http://blog.sina.com.cn/s/blog_6ab0cbbe0102v53q.html
第一次没看懂。太长,还有个不认识的using关键字。
原本已经已放弃。
===打算试试:
使用 最笨的方法:table1.字段名1,table1.字段名2...table2.字段名1,table1.字段名2...
===这个方法还是和同学讨论后才有的“灵感”呢。试过了,真的可以。
所以姑且强行装B,把 上面的答案 仔细看一遍。
又百度mysql using关键字的作用:很快找到这个:https://www.oschina.net/question/12_60726
核心内容:
ANSI 风格: ON
使用 JOIN ... ON 可以将表关联的条件和记录过滤条件分开,将上面的语句重写后的结果如下:
SELECT * FROM film JOIN film_actor ON (film.film_id = film_actor.film_id) WHERE actor_id = 17 AND film.length > 120
看起来清晰许多。
注意: ON 语句中的括号不是必须的,我个人喜欢这样写而已。
ANSI 风格: USING
有一种特殊情况,当两个要关联表的字段名是一样的,我们可以使用 USING ,可减少 SQL 语句的长度:
SELECT * FROM film JOIN film_actor USING (film_id) WHERE actor_id = 17 AND film.length > 120
这个时候括号就是必须的了。这种写法很好,输入更少的单词,查询的性能也非常棒,但还需要注意一些差异。
============从【
/*
有一种特殊情况,当两个要关联表的字段名是一样的,我们可以使用 USING ,可减少 SQL 语句的长度:
SELECT * FROM film JOIN film_actor USING (film_id) WHERE actor_id = 17 AND film.length > 120
这个时候括号就是必须的了。这种写法很好,输入更少的单词,查询的性能也非常棒,但还需要注意一些差异。
*/
】这句话发现:原来 using 是专门搞这个问题的。处理:
【多表关联,结果集 有重复字段的问题。】(这里是left out join查询 结果集)inner join 也有重复列。(已测)
===有重复字段,影响对这个结果集 进一步的查询,报错:Duplicate column name 'cid' ====有重复列。
===sql文件:http://pan.baidu.com/s/1cdHibG
嘿嘿。多谢同学的激烈讨论,激发我的斗志