2017-04-17 7 views
2
I want all country name in result along with those whose sel_id is 1 

で選択した結果にどこcondionを使用する方法を私は国のテーブルからすべての国とSELを持つprice_plan_detailテーブルからすべての一致するレコードをしたいmysqlの

country table 
    Id name 
    1 India 
    2 china 
    3 bangladesh 
    4 china 

price_plan_detail 
id country_id_fk name  sel_id 
1 1   india 1 1 
2 1   india 2 1 
3 1   india 3 2 
4 1   china 1 2 
5 2   china 1 1 
6 2   china 2 2 

price_plan_detail 2つのテーブルの国のテーブルとを持っていますidを1とします。

この結果が欲しいです。

この

は、私はこれは私がsel_id 1 私はすべての国にしたいと、すべての国にしたいここに間違っている私の結果である

name p sel_id 
india India 1  1 
india India 2  1 
china china 1  1 

間違った結果を得た。このクエリを使用して私のクエリ

SELECT * from (select c.name,p.name as p,p.sel_id as sel_id from country as c LEFT join price_plan_detail as p ON p.`country`=c.id) as t WHERE t.sel_id=1 

です結果の名前はsel_idが1であるものと一緒に

+0

すぐにDMLとDDLを提供したり、SQLFiddle.comを作成できますか?信じるのは簡単です。私はそれを解決することができます。 –

+0

あなたは4番目の列は何ですか? –

+0

具体的な問題を明確にしたり、詳細を追加して必要なものを正確に強調してください。現在書かれているとおり、あなたが求めていることを正確に伝えるのは難しいです。この質問を明確にするために、[ask]ページを参照してください。 –

答えて

1

からフィルタの基準をsel_id=1に移動する必要がありますテーブルが結合された後にwhere句が適用されるため、結合条件に3210句を追加します。

select c.name,p.name as pname,p.sel_id as sel_id 
from country as c 
LEFT join price_plan_detail as p 
    ON p.`country`=c.id and p.sel_id=1 
+0

それはうまく動作します...偉大な仕事 – vaibhav