2016-10-21 4 views
1

と組み合わせてデータを取り出す「2」。それをどうやって問い合わせることができますか?あなたはinオペレータ使用することができmysqlの要求は私がcompanyTypeIDは、例えばあるすべての人を、要求したい3つのテーブル</p> <p><a href="https://i.stack.imgur.com/QGV4Y.png" rel="nofollow"><img src="https://i.stack.imgur.com/QGV4Y.png" alt="enter image description here"></a></p> <p>を持つ2つのテーブル

答えて

0

INNER JOINください

SELECT * 
FROM persons 
WHERE CompanyId IN (SELECT CompanyId 
        FROM company 
        WHERE CompanyTypeId = 2) 
0

を(左または右の合流が機能的に類似している、唯一の違いは、方程式の側が尊重されています)。あなたのケースではこれがシナリオではありませんが、ネストされたクエリ/サブクエリはextremely expensive if they become dependent in nature —ですが、大きなテーブルでは使用しないことをお勧めします。あなたが参加するためのインデックスを使用している、あなたが各テーブルのcompanyTypeIDCompanyID列に索引を作成する必要があることを確実にするために

SELECT t1.* 
FROM Persons AS t1 
LEFT JOIN Company AS t2 ON 
    t2.companyTypeID = t1.CompanyID 

。上記のクエリの前にEXPLAIN EXTENDEDを追加して、インデックスが実際に使用されていることを確認します。

0

SQLを実行参加:

は、他のポストでは、サブクエリよりも高速ですジョイン:

SELECT Persons.firstname AS first name 
    FROM Persons 
    JOIN Company ON company.ID == Persons.CompanyID 
WHERE Company.companyTypeID == 2 

あなたが名前を簡素化するためにエイリアスを使用して、あなたが望む彼はフィールドのすべてを選択する必要がありますが、

0

SQLステートメントJOINを使用する必要があります。それはすべての数学的なセットについてです!およそ

Aグラフィック(および表層)の説明は、数学的なセットの下の文を結合アプローチ:あなたの問題のため

https://www.google.com.br/imgres?imgurl=http%3A%2F%2Fi.imgur.com%2FhhRDO4d.png&imgrefurl=https%3A%2F%2Fwww.reddit.com%2Fr%2Fprogramming%2Fcomments%2F1xlqeu%2Fsql_joins_explained_xpost_rsql%2F&docid=q4Ank7XVw8j7DM&tbnid=f-L_7a3HkxW_3M%3A&w=1000&h=740&client=ubuntu&bih=878&biw=1745&ved=0ahUKEwj2oaer5evPAhUBFZAKHe4nAdAQMwgdKAEwAQ&iact=mrc&uact=8#h=740&w=1000

SQL(私はこれを得た場合):

SELECT * FROM Persons p LEFT JOIN Company c ON c.ID = p.companyID 
         LEFT JOIN CompanyType ct ON ct.ID = c.companyTypeID 
WHERE c.id = 2; 

を「LEFT JOINの理由'?上の設定アプローチの説明についてのリンクをチェックしてください!

2番目の「LEFT JOIN」は、companyTypeテーブルの説明を表示するだけです。

"*" inステートメントはdidaticです!パフォーマンスの向上のために、これを本番環境で使用しないでください。したがって、 '*'を必要なすべてのフィールドに置き換える必要があります。たとえば、 "CONCAT(p.firstname、CONCAT(" "、p.lastname))をPersonName、c.name CompanyName、..."などのように指定します。私はあなたがMySQLを使用していると思います

私は助けてくれた!

関連する問題

 関連する問題