Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Relacja wiele do wielu - wyciąganie danych
Sierak
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 1.04.2004
Skąd: Warszawa

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


Walcze z tym od wczoraj i pomyslalem ze moze wy mnie nakierujecie na rozwiazanie. Chodzi o odpowiednie wyciagniecie danych z tabeli ktora jest relacja wiele do wielu dla dwoch innych tabel.

Wyglada to mniej wiecej tak w duzym skrocie:
tabela: hardware
HardID 1
HardID 2
HardID 3

tabela: software
SoftID 10
SoftID 11
SoftID 12

tabele: cthardtosoft
HardID 1; SoftID 10
HardID 1; SoftID 11
HardID 1; SoftID 12
HardID 2; SoftID 10
HardID 2; SoftID 11
HardID 3; SoftID 10

Zapytanie w postaci listy wszystkich komputerow ktore POSIADAJA jakis soft to prosta sprawa. Ale mam klopot z odwrotna sytujacja. Chce liste komputerow ktore np. NIE POSIADAJA softu o ID 12

Probowalem w taki sposob ale mam przeklamane dane:
  1. SELECT h.*, count(hs.HardID) AS liczba
  2. FROM hardware AS h
  3. LEFT JOIN cthardtosoft AS hs ON (h.HardID = hs.HardID)
  4. WHERE h.HardID IS NULL OR hs.SoftID != '12' GROUP BY hs.HardID HAVING liczba <= 1


lub tak:
  1. SELECT * FROM hardware WHERE HardID
  2. IN (
  3. SELECT HardID FROM cthardtosoft WHERE SoftID != '12' GROUP BY HardID HAVING count(*) <= 1
  4. )


Jezeli mam wybierac to wolalbym jedno zapytanie, bez podzapytan.
Mam do dyspozycji MySQL 4.1
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Sierak
post
Post #2





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 1.04.2004
Skąd: Warszawa

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


@nospor - dzieki, dziala ... nie ma to jak uczucie ze wkoncu sie udalo po dluzszym czasie meczenia sie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

@mike_mech - skasowales swojego posta ale odpisze ... chce w jednym zapytaniu ze wzgledu na zlozonosc zapytania i dosc duza ilosc warunkow ktore uwzgledniam w wyszukiwarce.

---
No właśnie tak pomyślałem że można prościej, dlatego wywaliłem posta, bo nie wnosił do wątku dużo.
~mike_mech
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 7.10.2025 - 14:09