2016-11-05 8 views
1

これはnoob-questionです。Join - missing record ...(単純なnoobリクエスト)を伴うSQL文

データは次のようになります

DB Design

...

products_services:

enter image description here

product_service_categories:

私は2つのテーブルを持っています

enter image description here

私のSQL文は、次のようになります

SELECT product_service_id, product_service_name, product_service_category_name 
FROM products_services 
JOIN product_service_categories ON 
products_services.product_service_category_id = product_service_categories.product_service_category_id 
WHERE products_services.company_id = '7' 
ORDER BY product_service_category_name, product_service_name 

結果は以下のようになります。私は "ID 2 - Ernährungsberatung" のエントリが行方不明です

SQL result

。 "product_service_category_id"が "0"であるため、エントリが見つかりません。

このレコードも取得するには、正しいSQL文を手伝ってください。

ありがとうございました!

+0

質問には意味がありません。 id 2が必要な場合は、なぜ企業IDをフィルタリングしていますか? –

+0

はい、そうです。私のスクリーンショットは正しくありません。 「company_id = 7」および「product_service_category_id = 0」のproduct_servicesテーブルのスクリーンショットにサンプルエントリがありませんでした。しかし、デュードの答えは...-) – Walhalla

答えて

0

JOINLEFT JOIN
JOINは一致する行のみを返します。
LEFT JOINは、右側のテーブルから一致する可能性のある、左側のテーブルのすべての行を返します。

+0

すみませんでした。私は、 "products_services"テーブルのスクリーンショットが間違っていて、 "company_id = 7"と "product_service_category_id = 0"のエントリがないことがわかりました。 しかし、あなたの答えには多くの感謝!それは "LEFT JOIN"と一緒に働いています! :-) 素敵な一日を! – Walhalla

+0

それはあなたのために働くはずです –

+0

私のアプリケーションでそれを実装しました。それは働いています:-) :-) :-)ありがとう – Walhalla