|
SQL baze podataka - Sponzor: Baze-Podataka.net MySQL, MSSQL, Oracle, Access, ODBC. Ako imate problem brže i preciznije ćete dobiti odgovor ako priložite strukturu tabela ili skript koji kreira tabele i puni ih test podacima umesto što to problem opisujete samo rečima. Sponzor: Baze-Podataka.net - Blog o bazama podataka |
|
Alati teme | Način prikaza |
27. 05. 2013. | #1 |
emperor Selassie
Grand Master
|
[MySQL] nešto kao where IN, ali da hvata sve
Možda je malo konfuzan naslov teme ali evo šta pokušavam: Imam sajt sa nekretninama i svaka od nekretnina može da ima neke "pogodnosti" pridružne (amenities, ne znam da li sam lepo preveo). To je sve organizovano ovako u tabelama (koje su bitne za problem):
1. properies - id, title, description, price, ... 2. amenities - id, name 3. amenities_properties - amenity_id, property_id E sad, pri pretrazi nekretnina imam checkboxove kojima treba da se suze rezultati pretrage na samo one nekretnine koje imaju sve označene "pogodnosti" pridružene. Probao sam ovako: Kôd:
SELECT DISTINCT `properties`.* FROM `properties` ... LEFT JOIN `amenities_properties` ON `properties`.`id` = `amenities_properties`.`property_id` ... WHERE `amenities_properties`.`amenity_id` IN (9, 15, 24) Kôd:
SELECT DISTINCT `properties`.* FROM `properties` ... LEFT JOIN `amenities_properties` ON `properties`.`id` = `amenities_properties`.`property_id` ... WHERE ( `amenities_properties`.`amenity_id` = 9 AND `amenities_properties`.`amenity_id` = 15 AND `amenities_properties`.`amenity_id` = 24 ) Da li ima neki način da ja dohvatim sve nekretnine koje imaju sve pogodnosti pridružene, a da ne moram da dohvatim sve koje imaju bar jednu (sa where... in ()) pa da onda iz PHP-a proveravam svaku ponaosob? |
|
|