0

結合のフィールドから選択/検索するにはどうすればよいですか?

where句は結合されたテーブルを検索するため、そのままにするか、クエリを2つに分割する方がよいでしょうか。

1つのクエリ

SELECT *
FROM user u
LEFT JOIN country c ON c.id=u.country_id
WHERE c.code='dk'

2つのクエリ

SELECT id
FROM country
WHERE code='dk'

SELECT *
FROM user u
LEFT JOIN country c ON c.id=u.country_id
WHERE c.id='result from first query'

サブクエリ

SELECT *
FROM user u
LEFT JOIN country c ON c.id=u.country_id
WHERE c.id IN (SELECT id FROM country WHERE code='dk')
4

1 に答える 1

1

効率的に実行したい場合は、where句に句を含めますjoin

SELECT 
    *
FROM 
    user u
LEFT JOIN 
    country c ON c.id=u.country_id
WHERE 
    c.code='dk'

SELECT 
    *
FROM 
    user u
LEFT JOIN 
    country c ON c.id=u.country_id
    AND c.code='dk'

このコードは db に対して 1 つのクエリのみを生成します。すべての例では 2 つのクエリが生成されます。

于 2013-01-22T10:13:43.440 に答える