2013-05-02 25 views
-1

我有兩個表:(MySQL的),你如何在一個查詢中沒有唯一值的從自然的結果表中的列加入?

員工

emp_id, emp_name, emp_dept, emp_sal 

1   A   A   1 

2   B   B   2 

3   C   C   3 

4   D   D   4 

試用

emp_id, random 

1   X 

1   Y 

2   Z 

3   A 

4   B 

如果我要進行自然連接員工和試用,

我會得到的結果:

emp_id, emp_name, emp_dept, emp_sal random 

1   A   A   1  X 

1   A   A   1  Y 

2   B   B   2  Z 

3   C   C   3  A 

4   D   D   4  B 

如果我想執行前面提到的自然聯接並在單個查詢中統計組織中的否,我該如何去做這件事?

select count(emp_dept) from (select distinct(emp_dept) from employee natural join trial) as T2; 

工作,但我想知道是否有另一種方法來做到上述?

注意:

自然連接是強制性的!

我嘗試以下兩個代碼和慘敗。 :P

  1. select count(emp_dept) from (select (emp_dept) from employee natural join trial) as T2; 給了我5,當實際的答案是4

  2. select count(select distinct(emp_dept) as emp_date from (select * from employee natural join trial) as T2) from T2;

  3. select count(select distinct(emp_dept) as emp_date from (select * from employee natural join trial) as T2) from (select * from employee natural join trial) as T3);

^我做了什麼錯在3上面的代碼行?

在此先感謝! :)

回答

0

你不能只是做一個COUNT(DISTINCT ....)嗎?像這樣: -

SELECT COUNT(DISTINCT emp_dept) 
FROM employee 
NATURAL JOIN trial 
+0

完美的工作!謝謝,Kickstart! (我會投了,如果不是因爲我的業餘代表:|) – 2013-05-02 09:24:39

+0

......謝謝你,ANKUR,對於編輯。仍然得到這個美好的網站hang!!的xD – 2013-05-02 09:34:48

相關問題