0

次のテーブルがあります。

ベース: id | domain

拡張: id | domain | country_code

国: id | country_code | country_name

禁止されたドメイン: id | domain

banned_domains には、数千 (500K 以上) のドメインがあります。ここで、banned_domains リストに存在しないデータ「domain、country_code、country_name」を取得する必要があります。私はMySQL JOINSがあまり得意ではありません。誰かが適切なクエリを案内してくれますか?

4

2 に答える 2

1

このクエリを使用できます。

select b.domain , e.country_code , c.country_name from base b join  extended e on b.domain = e.domain join countries c on e.country_code = c.country_code and b.domain not in (select domain from banned_domains);

このリンクhttp://sqlfiddle.com/#!2/f78ea/1を試してください。

于 2012-09-23T12:16:10.257 に答える
1
SELECT b.domain, ex.country_code, c.country_name FROM base b 
INNER JOIN extended ex ON b.domain=ex.domain
INNER JOIN countries c ON ex.country_code=c.country_code
WHERE b.domain NOT IN (SELECT domain FROM banned_domains);
于 2012-09-23T12:12:24.580 に答える