2016-09-28 9 views
0
SELECT * FROM categories WHERE status = 1 

「サービス」テーブルにその特定のカテゴリIDのデータがある場合は、カテゴリから結果を取得したいと思います。私はLeft joinやそれに類することを考えていた。助言がありますか?別のテーブルのカテゴリIDにバインドされたサービスがある場合は、テーブルからカテゴリを取得する

+0

A 'LEFT JOIN'は良いアイデアのように聞こえます。何が問題ですか? – jeroen

+0

Giorgos Betsosが問題を解決しました。ちょうど私が必要なもの! – logiacer

+0

テーブル内のすべての行に対してサブクエリを実行するのは効率的ではありません。 'IS NOT NULL'チェック付きの' JOIN'がおそらくもっと良い解決策になるでしょう。 – jeroen

答えて

1

あなたはEXISTSを使用することができます(私はところでPHPを使用):

SELECT c.* 
FROM categories AS c 
WHERE c.status = 1 AND EXISTS (SELECT 1 
           FROM services AS s 
           WHERE s.category_id = c.id) 
+0

私の問題を解決しました。どうもありがとうございます! – logiacer

+0

@logiacer喜んで助けてくれました。あなたの問題を解決するのに役立ちましたら、これを記入してください。 –

関連する問題