2011-01-07 5 views
0

私はSQL初心者です。ごめんなさい。 私は3つのテーブルを持っています:サービス、都市、city_services。私はcity_servicesテーブルから特定の都市で利用可能なすべてのサービス(city_idを使用)を取得する必要があるだけでなく、サービステーブルからサービス名を取得する必要があります。私は2つのステートメントと2 whileループ(php)をネストすることができますが、それは非効率的だとわかります。SQL joinまたはwhat?

JOINまたはネストされたSQL文が必要ですか?私はこれの周りに私の頭を包むことはできません。

どのようなヘルプや正しい方向を指すことが素晴らしいでしょう!

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

sndwg

答えて

2

はい、参加を使用してください。

SELECT service.name, city_service.id 
FROM City_Services AS city_service 
INNER JOIN Services As service ON city_service.service_id = service.service_id 
WHERE city_service.city_id = ? 

(。。あなたは、データベースとどのようにあなたがそれにアクセスしているに依存しますcity_idを指定するどのように私はあなたが無名のパラメータを持つパラメータ化クエリを使用していると仮定している上記の例では)

例えば:
+0

こんにちは、私は正しい方向に向いてくれてありがとう。私は、インターネット上の例のどれもがそのことを示していないので、Joinでwhere句を使用できることを知りませんでした.... このクエリはトリックを行いました... SELECT a.service_id、b.service_name FROM city_services AS a INNER JOINサービスとしてb ON a.service_id = b.service_id どこにa.city_id = x – drav