2016-12-20 9 views
0

2つのチェインされた選択ボックスと2つのテーブルがあります。ユーザーが最初の選択ボックスから値を選択し、 ....私はAJAXを使用していたため、第2の選択ボックスのオプションを設定したいSQL- column1またはcolumn2と一致する条件があっても、column3のデータを取得する

表1:猫

id  cat  scat  vid 

1  Venue Hotel  161 
2  Venue Hotel  162 
1  Venue Farms  163 
2  Apparel Mens  164 
1  Apparel Womens 165 
2  Apparel Kids  166 

表2:広告

id  name  area 

161  ABV  Ludhiana 
162  BCD  Jalandhar 
163  ABD  Delhi 
164  ACD  Chennai 
165  ASF  Delhi 
166  ASh  Delhi 

最初のselectは、table1 "Cat"からDISTINCT catとscatを取り出します。それは私のために絶対にうまく働いています。

クエリ私が選択した猫やスキャットと一致するtable2のからエリアを表示したい最初の選択ボックスから猫やスキャットを選択すると今

SELECT DISTINCT scat from Cat 
UNION 
SELECT DISTINCT cat from Cat 
order by scat; 

...例えば。ユーザが最初に「vid」161および163の「領域」、すなわち「ルディアナ(Ludhiana)」および「デリー(Delhi)」をフェッチすることから「場所」を選択する場合。ユーザーが "ホテル"を選択して "vid" 161と162のLudhianaとjalandharの "領域"を第2の選択ボックスに表示すると...

どのようなクエリを使用する必要がありますか?私は、彼らはおそらく別個のタイプですので、私はcatscatUNIONを避けるだろう多くのことを試みたが、私の解決策に達することができなかった...おかげで...

+0

'catからのscatの選択' - code smell :) – onedaywhen

+1

UNIONはすでにDISTINCTを暗示しています。あなたはあなたの質問からDISTINCTを両方取り除くことができます –

+0

@DuduMarkovitzよろしくお願いします...私は今、私の心に残しておきます... – Ashish

答えて

0

この助けとなるかもしれません代わりに、UNION結果、彼らは間違いなく、両方とも同じタイプareaのあるbecuase:

SELECT area 
    FROM Cat 
     NATURAL JOIN (SELECT id AS vid, area FROM Advert) A 
WHERE cat = 'Hotel' 
UNION 
SELECT area 
    FROM Cat 
     NATURAL JOIN (SELECT id AS vid, area FROM Advert) A 
WHERE scat = 'Hotel'; 

はもちろん、パラメータにリテラル「ホテル」を交換してください。

+0

私が使っていないのであれば、同じフィールドでcatとscatの両方を取り出すことができますユニオン? – Ashish

+0

@Ashish:私の答えに示されているように、結果の結合。 – onedaywhen

関連する問題