2017-10-15 25 views
-2

は、私は3つのテーブルのデータベースを持つSQLの結果を返します。は、私はマーケティングが許可されている顧客を返す必要が</p> <p><a href="https://i.stack.imgur.com/kmPAt.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/kmPAt.png" alt="enter image description here"></a></p> <p>(スクリーンショットを参照)、ビット値= 1

where句を使用して顧客のタイトルを返すことはできますが、マーケティングが許可されている顧客をどのようにフィルタリングするかはわかりません。私はwhereとjoin句を見ましたが、何か不足しているかもしれません。

ご協力いただければ幸いです。

答えて

0
SELECT Title 
FROM Customer AS Cust 
WHERE EXISTS (SELECT * 
       FROM Statuses AS S 
       WHERE S.statusID = Cust.statusID 
       AND S.isMarketingAllowed = 1); 

ご注意: を、それが結合操作で、同様の性能で、同じ結果を得ることが可能であるが、私は読みにくくとしてそれを参照してください。 にアクセスするには、2番目のテーブルの(select句による)にアクセスする必要があるときにJOIN操作を使用する必要があります。

+0

ありがとう!下のコメントにコメントを追加して、私のオリジナルの質問で逃したかもしれません。 – Kasper

0

それはようなものになるだろうように見えます。ご返信用

SELECT c.Forename, c.Surname, c.Email, t.Description, s.IsMarketingAllowed 
FROM Customer c 
INNER JOIN Statuses s ON c.StatusID = s.StatusID 
INNER JOIN Titles t ON c.Title = t.TitleID 
WHERE s.IsMarketingAllowed = 1 
+0

あなたのコメントをありがとう、私は私の元の質問でいくつかの情報を見逃している可能性があります。現時点で私は次のステートメントを持っています: 'code' \tタイトル、姓、Eメール、タイトル、得意先、ステータスからCustomers.Title = Titles.TitleID; これは、マーケティングが許可されている顧客を返すのが妥当であると思われる場合です。 – Kasper

+0

表をカンマでリストするのではなく、明示的にJOINSを使用する必要があります。上のクエリを実行しようとしましたか? – kbball

+0

あなたがコメントしたクエリを実行しましたが、私が言ったように、私の回答では、私がすでに持っているものに関するいくつかの情報を逃したので、私が必要だったものではありませんでした。 また、明示的にJOINSを書くことはどういう意味ですか? – Kasper

関連する問題

 関連する問題