2017-01-24 17 views
-1

基本的に私は2つのテーブルを顧客とし、もう1つの部門は共通の属性である 'branch'を持っています。希望の解決策が返されていませんか?

私は

(顧客テーブルから) とCUSTOMER_NAME(部署テーブルから)department_managerを取得しようとしていたので、私のクエリは

 SELECT department_manager,customername FROM customer,department WHERE 
customer.branch=department.branch; 

だった。これは、私に必要なソリューションを提供します。

しかし、私は最初のものは私を与えていたので、これは私に所望の解を与えていないサブクエリ

SELECT department_manager,customername FROM customer,department  WHERE 
customer.branch IN (select branch from department); 

を使用して同じ結果を得ることを考えました。私は基本的に2つのテーブルに共通の属性、つまりブランチが関係していれば、それを結合したいと考えています。

答えて

2

あなたは間違っています。 2番目のクエリでは、departmentへの参照が2つあります。彼らは独立しています。

クエリを記述するための正しい方法は、明示的なJOINを使用している:

SELECT d.department_manager, c.customername 
FROM customer c JOIN 
    department d 
    ON c.branch = d.branch; 

単純なルール:FROM句の決して使用コンマ。

+0

私は実際にそれはあなたがFROM句にカンマ(以上1台の場合)を使用する必要が言われているチュートリアルを見ました! – pluto20010

+0

@ user6177394 。 。さて、このチュートリアルは、約25年しか経過していません。より良い教材を入手してください。 –

+0

よく私はこれを見ました https://www.tutorialspoint.com/sql/sql-using-joins.htm と多くがあります。 あなたの好みをお勧めしますか? – pluto20010

0

あなたはサブクエリを使用して特定されている場合..

SELECT department_manager,customername 
FROM customer 
Inner Join department 
On customer.branch=department.branch 
WHERE customer.branch IN (select branch from department); 
+0

WHERE句、つまりコードの最後の行を使用せずに、目的のソリューションを取得しています。 そのサブクエリは使用されていませんか? – pluto20010

+0

@ pluto20010はい、そうです。サブクエリを必要としない結合条件を使用するだけです。 – New

+0

はい、サブクエリだけを使用して結果を抽出したい場合はどうなりますか?コードは何を持っていたでしょうか? – pluto20010

関連する問題