![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 20.12.2003 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
mam taką przykładową tabelę:
Kod -----------------------------------------
| owoc | cecha | wartosc | ----------------------------------------- | cytryna | kolor | żółty | | cytryna | smak | kwaśny | | pomarańcza | kolor | pomarańczowy | | pomarańcza | smak | słodki | | banan | kolor | żółty | | banan | smak | słodki | | kiwi | kolor | zielony | | kiwi | smak | kwaśny | ----------------------------------------- i przykładowo chciałbym znaleźć wszystkie żółte i zarazem kwaśne owoce (czyli w tym przypadku wynikiem powinna być cytryna) czy istnieje możliwość, aby wyszukać dany owoc za jednym zapytaniem, mam mysql. Jeśli nie, to jak najlepiej zoptymalizować takie zapytanie. Czemu wybrałem takie rozwiązanie? cechy nie są stałymi wartościami, a nie chcę też aby skrypt modyfikował strukturę tabeli. ps: sorry, za tytuł topicu, ale wie wiedziałem jak to nazwać... |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 136 Pomógł: 0 Dołączył: 2.01.2004 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Oops (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Pospieszyłem się, troche, rzeczywiście. Zwracam honor (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Znalazłem rozwiązanie: [sql:1:d6ad107dc6] SELECT owoc, count(*) as ile FROM owoce WHERE (cecha = 'kolor' AND wartosc = 'zolty') OR (cecha = 'smak' AND wartosc = 'kwasny') GROUP BY owoc HAVING(ile = 2); [/sql:1:d6ad107dc6] W kaluzuli HAVING musiałbyś zmieniać tą dwójkę na liczbę, cech wg, których szukasz. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 12:33 |