2016-12-20 3 views
0

Ich habe zwei verkettete Auswahlfelder und zwei Tabellen .... Ich will Benutzer einen Wert aus dem ersten Auswahlfeld auswählen und dann auf der Grundlage der Auswahlbox i wollen für die zweite Auswahlfeld Optionen festlegen, für die ich bin mit ajax ....SQL- Daten aus Spalte3 abrufen, auch wenn die Bedingung mit Spalte1 oder Spalte2 übereinstimmt.

Tabelle 1: Katze

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 

Table2: Anzeigen

id  name  area 

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

Zuerst wählen Sie FETTE DISTINCT cat und scat aus table1 "Cat". Was mir absolut gut geht.

Abfrage

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

Jetzt eine Katze oder kv aus der ersten Auswahlfeld bei Auswahl Ich möchte von table2 Bereich anzuzeigen, welche die ausgewählte Katze oder kv passt ... z. Wenn der Benutzer "Veranstaltungsort" auswählt, wählt er zuerst "Bereich" von "Vide" 161 und 163, d. H. "Ludhiana" und "Delhi", die abgerufen werden sollen. Und wenn Benutzer wählt "Hotel" dann "Bereich" von "Vid" 161 und 162 Ludhiana und Jalandhar im zweiten Auswahlfeld angezeigt werden ...

Welche Abfrage muss ich verwenden ?? Ich versuchte viel, konnte aber nicht zu meiner Lösung erreichen ... Danke ...

+0

'SELECT DISTINCT scat von der Katze' - Code Geruch :) – onedaywhen

+1

UNION bereits implizieren DISTINCT. Sie können beide DISTINCT aus Ihrer Abfrage entfernen –

+0

@DuduMarkovitz Okay, danke für den Punkt .... ich werde es in meinen Gedanken halten jetzt ... – Ashish

Antwort

0

Persönlich würde ich eine UNION zwischen cat und scat zu vermeiden, weil sie vermutlich unterschiedliche Typen sind und stattdessen UNION die Ergebnisse becuase sie sind auf jeden Fall beide vom gleichen Typ area:

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'; 

Ersetzen sie das wörtliche ‚Hotel‘ mit einem Parameter, natürlich.

+0

Dann, wie ich beide Katze und Scat im selben Feld holen kann, wenn ich nicht verwende UNION? – Ashish

+0

@Ashish: Mit einer Vereinigung der Ergebnisse, wie in meiner Antwort gezeigt. – onedaywhen

Verwandte Themen