![]() |
![]() |
![]()
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: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
nie wiem, czy mysql też to ma, ale w postgresie jest coś takiego jak anonimowy widok (chyba tak to się nazywa). I robi się to tak:
Kod SELECT * FROM ( SELECT * FROM tabela WHERE cos = cos ) AS temp WHERE cos = cos Czyli u Ciebie byłobyKod SELECT owoc FROM (SELECT * FROM owoce WHERE cecha = 'smak' AND wartosc='kwasny') AS smaki, (SELECT * FROM owoce WHERE cecha='kolor' AND wartosc='zolty') AS kolory WHERE smaki.owoc=kolory.owoc Powinno działać, ale nie ręcze (nie sprawdzałem) i nie wiem jak będzie s MySQL'em (może ma taką podobną możliwość).
@scanner: Jesteś pewien, że to działa bo mi się nie wydaje... :/ |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 06:33 |