![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 74 Pomógł: 1 Dołączył: 5.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jak znależć wszystkich użytkowników majacych id_dodatkowe 1 i 2 i 3 (WSZYSTKIE 3)
Tabela wybląda tak: id_pomocnicza id_uzytkownika id_dodatkowe 1 1 1 2 1 2 3 1 3 4 2 1 5 2 3 6 3 2 czyli powinno wskazać id_uzytkownika nr 1 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 79 Pomógł: 12 Dołączył: 23.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
Struktura bazy danych którą zaprezentowałeś jest prosta, nie opisałeś jednak co dokładnie ma robić ów zapytanie, ponieważ można rozwiązać to na parę sposobów. Na przykład tak:
Kod SELECT * FROM tabela
WHERE COUNT(id_uzytkownika) = 3 GROUP BY id_uzytkownika -------------------- ![]() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 74 Pomógł: 1 Dołączył: 5.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Chodzi mi o zapytanie w stylu zamieszczonego poniżej
To zapytanie nie działa i nie wiem jak je inaczej zrobić. Ten post edytował Ryder 26.04.2008, 08:24:21 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 115 Pomógł: 12 Dołączył: 11.01.2005 Skąd: Zduńska Wola Ostrzeżenie: (0%) ![]() ![]() |
zamiast AND spróbuj OR
Ten post edytował Virti 26.04.2008, 08:27:11 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 74 Pomógł: 1 Dołączył: 5.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
OR nie można użyć bo wtedy wystarczy że jeden z warunków podanych jest poprawny.
A mi chodzi o to żeby wszystkie trzy warunki musiały być spełnione. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 79 Pomógł: 12 Dołączył: 23.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jaki jest cel Twojego zapytania, podaj więcej przykładowych danych bo dla zaprezentowanych wcześniej moje zapytanie zwróci poprawny wynik.
-------------------- ![]() |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 74 Pomógł: 1 Dołączył: 5.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Tabela uzywane_media
Wyglada dokładnie tak ![]() Teraz robie zapytanie ![]() Ale to i tak chyba by nie działało tak jak powinno, bo ty zliczasz ilość wystąpień, a nie sprawdzasz konkretnych wartości W tym podanym teraz przykładzie powinno zwrócić id_uzytkownika 1 i 2 Ten post edytował Ryder 26.04.2008, 08:55:20 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 79 Pomógł: 12 Dołączył: 23.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
Widzisz, to zmienia trochę sytuację, prawidłowym zapytaniem będzie wtedy:
Kod SELECT id_uzytkownika FROM ( SELECT *, COUNT(*) as num FROM `uzywane_media` WHERE id_media IN (1,2,3) GROUP BY id_uzytkownika ) as tm WHERE tm.num = 3
-------------------- ![]() |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 74 Pomógł: 1 Dołączył: 5.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wiekie
Spodziweałem się że za proste to zapytanie nie będzie |
|
|
![]()
Post
#10
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
nie ma potrzeby użycia podzapytań, wystarczy trochę prostsze pytanie
modyfikując listę w IN(...) oraz liczbę w COUNT(...) możesz wybierać dowolne zestawy id_media -------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 11:13 |