MySQL Join详解

作者: 来源: 添加时间:2006-5-22 11:28:46

+------+----------+---------+
  | id   | name  | dept_id |
  +------+----------+---------+
  | 2 | Dennis-2 | DEv  |
  | 1 | Dennis-1 | R&D  |
  | 3 | Dennis-3 | R&D  |
  | 4 | Dennis-4 | Test |
  | 5 | Dennis-5 | Test |
  +------+----------+---------+
  5 rows in set (0.00 sec)

  # 我们再把 table 的位置交换一下,再用 right join 试试

  select a.id,a.name,b.dept_id
  from emp_dept b right join emp a on (a.id=b.emp_id);

  mysql> select a.id,a.name,b.dept_id
  -> from emp_dept b right join emp a on (a.id=b.emp_id);
  +----+-----------+---------+
  | id | name   | dept_id |
  +----+-----------+---------+
  |  1 | Dennis-1  | R&D  |
  |  2 | Dennis-2  | DEv  |
  |  3 | Dennis-3  | R&D  |
  |  4 | Dennis-4  | Test |
  |  5 | Dennis-5  | Test |
  |  6 | Dennis-6  | NULL |
  |  7 | Dennis-7  | NULL |
  |  8 | Dennis-8  | NULL |
  |  9 | Dennis-9  | NULL |
  | 10 | Dennis-10 | NULL |
  +----+-----------+---------+

# 是不是和 left join 一样了?

  >> direct join
  --------------
  # 如果用right join 同不用 Join 直接挑资料是相同的,它等介於以下的指令

  select a.id,a.name,b.dept_id
  from emp a ,emp_dept b 
  where a.id=b.emp_id;

  mysql> select a.id,a.name,b.dept_id
  -> from emp a ,emp_dept b
  -> where a.id=b.emp_id;
  +----+----------+---------+
  | id | name  | dept_id |
  +----+----------+---------+
  |  2 | Dennis-2 | DEv  |
  |  1 | Dennis-1 | R&D  |
  |  3 | Dennis-3 | R&D  |
  |  4 | Dennis-4 | Test |
  |  5 | Dennis-5 | Test |
  +----+----------+---------+

  怎样,弄明白了吗?

  Enjoy it!

第 3 页,共 3 页 [1] [2] [3]
站内搜索