![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 170 Pomógł: 14 Dołączył: 16.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Potrzebuje pobrać wszystkie wartości z tabeli1, jeżeli tabela2 w polu "dokument" ma wartość 0 Tabela1 Kod id | data | user | inne pola ... 1 | 2010 | 1234 | ... 2 | 2011 | 3456 | ... Tabela2 Kod id | dokument | inne pola ... 1 | 0 | ... 2 | 1 | ... Zapytanie wyprodukowałem takie:
Dla przykładowych danych zwraca mi oba wyniki (z tabeli 1 [powinno zwrócić tylko pozycję 2]). Potrzebuję też wziąć pod uwagę przypadek, kiedy tabela2 jest pusta. Z góry dzięki |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
A jaka jest relacja między tymi tabelami? Bo na razie robisz iloczyn kartezjański wszystkich wierszy z obu tabel.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 170 Pomógł: 14 Dołączył: 16.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Pole "dokument" z tabeli2 wskazuje na pole "id" z tabeli1
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 165 Pomógł: 5 Dołączył: 10.07.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
i chcesz pobrać tylko te wiersze, w których dokument = 0?
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 170 Pomógł: 14 Dołączył: 16.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Tak (lub wszystkie pozycje z tabeli1, jeżeli tabela2 jest pusta)
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 215 Pomógł: 19 Dołączył: 24.12.2003 Skąd: Przemyśl Ostrzeżenie: (0%) ![]() ![]() |
No a coś takiego nie działa ?
-------------------- My mind is glowing ...
Jeśli pomogłem push the button :) |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 170 Pomógł: 14 Dołączył: 16.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Niestety nie
![]() |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 165 Pomógł: 5 Dołączył: 10.07.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Chcesz pobrać tylko te wiersze, gdzie dokument = 0, więc dlaczego piszesz, że powinno z przykładowych danych zwrócić wiersz z id=2 (Tabela1) skoro jeśli połączymy Tabela1 i Tabela2 (Tabela1.id = Tabela2.dokument), to dokument nie jest równy 0?
Opisz jeszcze raz dokładniej, co zawierają te tabele i które dane z jednej tabeli są tymi samymi danymi w drugiej tabeli (takie dane umożliwiają zrobienie join'a). |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 215 Pomógł: 19 Dołączył: 24.12.2003 Skąd: Przemyśl Ostrzeżenie: (0%) ![]() ![]() |
Czekaj no jeśli Ty chcesz pobrac tylko te wiersze gdzie dokument ma być 0 i do tego kolumna ta jest kluczem to trzeba to odwrotnie dać. Spróbuj tak
-------------------- My mind is glowing ...
Jeśli pomogłem push the button :) |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
i jeszcze
Kod OR t2.dokument IS NULL
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Mam pytanie... Skoro pole tabela2.dokument wskazuje na pole tabela1.id, to jak Ty chcesz wiedzieć jakie dokumenty to mają być, skoro szukasz tam, gdzie tabela2.dokument = 0? Przecież to bezsens logiczny. Jak ma znaleźć jakikolwiek dokument, skoro tabela 2 nie przechowuje o nim informacji wtedy? Niby gdzie? W tabeli1, w rekordzie o id = 0? Sam tak to ustawiasz i dziwisz się, że nie działa, a przecież nie ma prawa działać. Od kiedy bowiem można łączyć dwie tabele po polu, które według Ciebie z góry ma mieć wtedy zawsze wartość 0 i jeszcze oczekiwać sensownego wyniku?
A może to miało być tak, że w obu tych tabelach pola id odpowiadają sobie (tabela.id oznacza dokument powiązany z tabela2.id)? Jeśli dobrze myślę, to jedynie w zapytaniu zmień: ON t2.id = t1.id Co do drugiej części pytania, to chyba najszybciej będzie pchnąć drugie zapytanie uzależnione od liczby wierszy wyniku po stronie php niż robić cuda-wianki w zapytaniu. -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 20.07.2025 - 02:19 |