Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapytanie do jednej tabeli
Skwareknec
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 13.05.2009

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


Witam serdecznie. Posiadam taką oto tabelę:
  1. mysql> SELECT * FROM przekazania;
  2. +----------------+-----------------------------+------------------+-----------+-----------------+-----------------+-------------+-------+
  3. | id_przekazania | nazwa | data_przekazania | id_mienia | id_uzytkownicy1 | id_uzytkownicy2 | czy_magazyn | uwagi |
  4. +----------------+-----------------------------+------------------+-----------+-----------------+-----------------+-------------+-------+
  5. | 1 | MAGAZYN -> 91051206081 | 2013-07-02 | 1 | 6 | 2 | 1 | NULL |
  6. | 2 | 91051206080 -> 91051206082 | 2013-07-10 | 3 | 1 | 3 | 0 | NULL |
  7. | 3 | 91051206080 -> MAGAZYN | 2013-07-13 | 2 | 1 | 6 | 1 | NULL |
  8. | 4 | 91051206083 -> 91051206080 | 2013-07-19 | 4 | 4 | 1 | 0 | NULL |
  9. | 5 | 91051206081 -> MAGAZYN | 2013-07-21 | 1 | 2 | 6 | 1 | NULL |
  10. | 6 | MAGAZYN -> 91051206081 | 2013-08-22 | 1 | 6 | 2 | 1 | NULL |
  11. | 8 | 91051206080 -> MAGAZYN | 2013-08-24 | 4 | 1 | 6 | 1 | NULL |
  12. | 9 | MAGAZYN -> 91051206081 | 2013-08-30 | 4 | 6 | 2 | 1 | NULL |
  13. | 10 | 91051206081 -> MAGAZYN | 2013-09-11 | 4 | 2 | 6 | 1 | NULL |
  14. +----------------+-----------------------------+------------------+-----------+-----------------+-----------------+-------------+-------+


Tabela ta przechowuje wszystkie przekazania mienia pomiędzy dwoma użytkownikami. Id_uzytkownicy1 zawsze przekazuje odbiorcy(id_uzytkownicy2) mienie(id_mienia). Zastanawiam się jak można pobrać z tej tabeli tylko te wiersze, aby można było odczytać jakie mienie posiada aktualnie np. użytkownik 2. Czyli w tym przypadku użytkownik 2 posiada mienie: 1. Za każdą podpowiedź będę niezmiernie wdzięczny (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
mmmmmmm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


  1. SELECT DISTINCT id_mienia FROM przekazania WHERE id_uzytkownicy2=2
Go to the top of the page
+Quote Post
Skwareknec
post
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 13.05.2009

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


Dzięki za zainteresowanie (IMG:style_emoticons/default/smile.gif) Niestety Twoje polecenie nie działa prawidłowo. Zwraca dwa id_mienia: 1, 4, a powinno jedynie zwracać id_mienia = 1.
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #4





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Nie wyjaśniłeś problemu dostatecznie jasno. Czy są to dwie osobne grupy użytkowników? Z tego co widze po id raczej nie. Czy użytkownik może mieć tylko jedno mienie w jednym czasie? Jeśli trzeba uwzględnić, że dajmy na to user o id 1 dostał mienie o id 10, następnie oddał je innemu użytkownikowi, jednak znajduje się on na liście transakcji, tak więc ciężko będzie to zrealizować jednym zapytaniem, o ile w ogóle jest to możliwe.
Go to the top of the page
+Quote Post
Skwareknec
post
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 13.05.2009

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


Wszyscy użytkownicy należą do tej samej grupy oraz każdy użytkownik może posiadać wiele rzeczy naraz. Chciałbym, aby wybierać tylko te mienia, które faktycznie użytkownik posiada, tzn. ktoś mu daną rzecz przekazał, a on tej rzeczy nikomu nie zwrócił/nie przekazał dalej. Proszę o Waszą pomoc, bo również wydaje mi się, że takie zapytanie będzie trudno napisać lub jest ono nie możliwe. Chcę aby bardziej doświadczone osoby wypowiedziały się w tej sprawie.
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #6





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Myślę, że możesz to zrealizować od drugiej strony, tzn. najpierw sprawdzić, gdzie obecnie znajduje się dane mienie, czyli pobrać ostatnie przekazanie dla danego mienia.

  1. SELECT id_przekazania, id_uzytkownika2 FROM przekazania GROUP BY id_mienia ORDER BY data_przekazania DESC


Go to the top of the page
+Quote Post

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: 20.09.2025 - 20:26