2014-02-13 94 views
0

我有一個Table Emp_company,其中有許多列,其中一個是Salary。我需要知道如何比較公司1員工的薪水和公司2員工的薪水。如果可以,請你幫助我。顯示公司1的員工姓名,其薪水大於公司2的每個員工(SQL)

+2

這是沒有足夠的信息去。公司1和公司2是否有單獨的表格,或者是同一個表格中的所有數據? – steinmas

+0

表名?字段名稱?表結構? –

+0

Company1和Company2是同一個表的列「Cname」的一部分。對於那個很抱歉。 – Saurav

回答

1
Select * from Company1 WHERE Company1.Salary > (Select Max(company2.salary) from company2) 

解決方案Sourav:所有在一行的完整的查詢: 請嘗試:

Select * from Company WHERE Salary > (Select salary from company WHERE cname = 'Company2' ORDER by salary desc LIMIT 1) AND cname = 'company1' 
+0

'的'是無效語法 –

+1

對不起phil 現在好 – Jain

+0

Company1和Company2不是不同的字段。他們來自Field Cname。 – Saurav

0

你可以得到Company2的工資最高是這樣的:

SELECT MAX(salary) FROM company_table WHERE cname="company2"; 

...然後得到這個參數,找到那些在公司1誰賺得更多:

SELECT * FROM company_table WHERE cname="company1" AND salary > x; 

...其中x是第一個查詢的結果。

編輯:編輯使用同桌的兩家公司,如海報在評論中提到

編輯:

SELECT * FROM company_table WHERE cname="company1" AND salary > (SELECT MAX(salary) FROM company_table WHERE cname="company2"); 
+0

子查詢有什麼問題? – siride

+0

只是想我會以模塊化的方式回答 - 用戶可以使用子查詢,但我認爲如果我將它們分開,代碼會更容易看到 – benwad

+0

我認爲這樣做更簡單。子查詢版本非常簡單。現在您有兩個查詢,需要一些系統將A的結果移到查詢B中。 – siride

相關問題