![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 101 Pomógł: 2 Dołączył: 10.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
mam pewien problem ..
są dwie tabele 1 testy test_id (int) user_id (int) 2 share test_id (int) user_id (int) status (int) chce pobrać wszystkie rekordy z tabeli testy gdzie użytkownik ma w drugej tabeli status różny od 1 nie bardzo wiem jak do tego podejść:/ |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 483 Pomógł: 50 Dołączył: 15.03.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Pisane z reki mam nadzieje ze dobrze ![]() -------------------- Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas === po prostu kocham ją :D haha |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 101 Pomógł: 2 Dołączył: 10.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
przepraszam ,w powyższym poście nastąpiła pomyłka , w kolumnie test nie ma tabeli user_id \
1 testy test_id (int) 2 share test_id (int) user_id (int) status (int) |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 483 Pomógł: 50 Dołączył: 15.03.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Do końca nie wiem czy to wyświetli tak jak potrzeba, jeśli nie to daj znak stworze sobie tabele i chwile pokombinuje. Tylko wtedy napisz dokładnie jaki efekt chcesz użyskać to ma dzialać na zasadzie grupowania ze do pierwszego testu wyswietli ci wszyskich userow ktorzy wykonali ten test? -------------------- Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas === po prostu kocham ją :D haha |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 101 Pomógł: 2 Dołączył: 10.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
dzięki ,działa świetnie
![]() a co jeśli druga tabela nie zawiera rekordów pasujących do : test.test_id = share.test_id ? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 64 Pomógł: 14 Dołączył: 25.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
wtedy takie pole bedzie mialo wartosc NULL, czyli bedzie po prostu puste
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 101 Pomógł: 2 Dołączył: 10.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
ale mi zależy aby pobrać wszystkie testy w których użytkownik nie brał udziału,a powyższe pytania zwraca mi wszystkie w których brał udział :/
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 483 Pomógł: 50 Dołączył: 15.03.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Jak masz oznaczone w bazie czy user brał czy nie brał w danym teście udział? po prostu wpis czy jak?
-------------------- Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas === po prostu kocham ją :D haha |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 101 Pomógł: 2 Dołączył: 10.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
mam wpis jeżeli brał udział w teście ,dodatkowo share.status podaje czy test został przyjęty , czy odzucony
więc chcę aby wynikiem zapytania było : czy user brał udział w teście , jeśli tak to pobrać również testy gdy share.status <> 1 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 483 Pomógł: 50 Dołączył: 15.03.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Czyli jesli dobrze zrozumiałem:
Twoje zapytanie ma działać na zasadzie: do danego użytkownika pobiera wszystkie testy, sprawdza czy share.status<>1 (jeśli jest wpis) i te ma pokazywać? Czy ma pobierać wszystkich uzytkowników + wpis o testach w jakim brali udział ? -------------------- Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas === po prostu kocham ją :D haha |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 101 Pomógł: 2 Dołączył: 10.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
może inaczej ,niech pobiera wszystkie testy w których użytkownik nie brał udziału (pomińmy kolumnę share.status)
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 483 Pomógł: 50 Dołączył: 15.03.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
pokombinuje torkszę jak to zrobić - daj mi chiwle
![]() Sprawdź czy o to Ci chodziło: Stworzłem 2 tabele: Kod mysql> select * from share; +---------+---------+--------+ | test_id | user_id | status | +---------+---------+--------+ | 1 | 1 | 1 | | 2 | 1 | 0 | +---------+---------+--------+ Oraz mysql> select * from testy; +---------+ | test_id | +---------+ | 1 | | 2 | | 3 | +---------+ Wynik zapytania:
jest następujacy: Kod mysql> select `test_id` FROM `testy` WHERE `test_id` NOT IN (select `test_id` FROM `share` WHERE `user_id`=1 AND `status`=1); +---------+ | test_id | +---------+ | 2 | | 3 | +---------+ 2 rows in set (0,00 sec) To ci pokaze wszystkie testy w ktorych status nie jest 1 dla uzytkownika o id 1 Ten post edytował Hpsi 29.06.2011, 13:35:18 -------------------- Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas === po prostu kocham ją :D haha |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 26.06.2025 - 03:13 |