Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] warunek
crunch
post 9.01.2008, 15:55:34
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 20.03.2007
Skąd: ZG

Ostrzeżenie: (0%)
-----


witam!

mam tabelę z [najważniejszymi] polami id i id_kat.
  1. CREATE TABLE `id2kat` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `id_kat` int(11) NOT NULL,
  4. PRIMARY KEY (`id`)
  5. )

potrzebuję wyciągnąć te id, których odpowiadające id_kat są równe wszystkim z podanych warunkiem.

Na przykład:
id id_kat
2 3
2 4
2 5
3 2
3 4
3 5

Dla id_kat = 3 AND id_kat=4
zwróci
id=2.

Będę wdzięczny za podpowiedź, nawet niekoniecznie rozwiązanie (choć przydałoby się smile.gif).
Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
crunch
post 10.01.2008, 11:31:10
Post #2





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 20.03.2007
Skąd: ZG

Ostrzeżenie: (0%)
-----


hm.. chyba niezupełnie o to mi chodziło..
'distinct' owszem, zwróci mi różne wiersze, ale ważniejszy jest warunek..
Zapytanie powinno zwrócić te id, dla których istnieje id_kat równe (kolejno?) wszystkim przekazanym liczbom.

PS. Działa mi coś takiego (tyle że bardzo długo ;] ):
  1. SELECT DISTINCT (`p`.`id`)
  2. FROM `id2kat` AS `p`
  3. WHERE EXISTS (
  4.  
  5. SELECT `id`
  6. FROM `id2kat` AS `p2`
  7. WHERE (`p`.`id` = `p2`.`id`) AND (`p2`.`id_kat` =3)
  8.  
  9. ) AND EXISTS (
  10.  
  11. SELECT `id`
  12. FROM `id2kat` AS `p2`
  13. WHERE (`p`.`id` = `p2`.`id`) AND (`p2`.`id_kat` =4)
  14. );


PS2. Pisząc "długo" mam na myśli czas rzędu dziesiątek sekund ;] (dla ok. 1000 wpisów powyższe zapytanie mysql wykonuje w ok. 18sekund).

Ten post edytował crunch 10.01.2008, 11:36:23
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 19:49