Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> problem z zapytaniem
patrykt
post 17.03.2006, 19:02:25
Post #1





Grupa: Zarejestrowani
Postów: 101
Pomógł: 0
Dołączył: 3.12.2005

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


Problem, z którym stykam się nie od dziś. Muszę wybrać z bazy danych, w możliwie JEDNYM zapytanie, powiedzmy 20 rekordów z jednej tabeli. Jeśli w drugiej tabeli występuje rekord, posiadający w określonej kolumnie id z pierwszej tabeli, to taki rekord NIE jest wybierany. Mam nadzieję, iż wyraziłem się jasno. Mogę postarać się opisać to dokładnie.
Go to the top of the page
+Quote Post
tmk
post 17.03.2006, 19:23:26
Post #2





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 15.04.2004
Skąd: w-wa

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


Najlepiej podaj przykład - zarówno tabel z bazy jak i zapytania, z którego korzystasz.
Chodzi Ci o wyświetlenie rekorów z tabelki A, których nie ma w tabelce B?

Ten post edytował tmk 17.03.2006, 19:25:28
Go to the top of the page
+Quote Post
patrykt
post 17.03.2006, 19:34:45
Post #3





Grupa: Zarejestrowani
Postów: 101
Pomógł: 0
Dołączył: 3.12.2005

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


>Chodzi Ci o wyświetlenie rekorów z tabelki A, których nie ma w tabelce B?

dokładnie
Go to the top of the page
+Quote Post
tmk
post 17.03.2006, 19:49:57
Post #4





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 15.04.2004
Skąd: w-wa

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


1-wsze rozwiązanie - nie jestem pewien, czy w MySQLu jest to obsługiwane:
  1. SELECT*
  2. FROM A_table;
  3. MINUS
  4. SELECT*
  5. FROM B_table;

obydwa zapytania muszą odwoływać się do tej samej liczby kolumn, odpowiadające sobie kolumny muszą być tego samego typu

2-gie rozwiązanie: jeśli MINUS nie jest obsługiwane to można skorzystac z NOT IN. Nie wiem jakiego masz MySQLa i czy obsługiwane są w nim podzapytania:
  1. SELECT*
  2. FROM A_table
  3. WHERE id NOT IN (SELECT id
  4. FROM B_table)


Ten post edytował tmk 17.03.2006, 19:52:50
Go to the top of the page
+Quote Post
patrykt
post 17.03.2006, 19:55:56
Post #5





Grupa: Zarejestrowani
Postów: 101
Pomógł: 0
Dołączył: 3.12.2005

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


psiakrew, tego to ja nie znałem. wielkie dzięki, mam się czym bawić.
pzdrwm
Go to the top of the page
+Quote Post
spenalzo
post 19.03.2006, 15:59:40
Post #6





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


  1. SELECT tabela1.*
  2. FROM tabela1
  3. LEFT JOIN tabela2 ON (tabela1.id=tabela2.id) WHERE tabela2.costam IS NULL


Ten post edytował spenalzo 19.03.2006, 16:00:20


--------------------

Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 22.06.2025 - 12:23