Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Jak porównać dane z 2 tabel i je wypisać
cent4
post
Post #1





Grupa: Zarejestrowani
Postów: 415
Pomógł: 0
Dołączył: 24.12.2008

Ostrzeżenie: (10%)
X----


Witam.
Mam 2 tabele, A i B - tabele mają takie same pola.
Jak zbudować zapytanie, które pobierze mi dane do jakiejś tablicy i porówna te pola z tabel A i B, i jeśli pola będą sobie równe - wypisze tylko te dane?

Ten post edytował cent4 22.02.2011, 12:33:25
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




  1. WHERE NOT IN

i podzapytaniem lecisz.


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
cent4
post
Post #3





Grupa: Zarejestrowani
Postów: 415
Pomógł: 0
Dołączył: 24.12.2008

Ostrzeżenie: (10%)
X----


$SQL = "SELECT Med, Kat, Nr_id FROM media WHERE id=$id AND WHERE Med, Kat, Nr_id NOT IN (SELECT * FROM historia)

Chyba coś namieszałem - bo coś takiego jak wyżej mi nie działa.
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
bo coś takiego jak wyżej mi nie działa.

Dali mi bana na szklaną kulę.


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
cent4
post
Post #5





Grupa: Zarejestrowani
Postów: 415
Pomógł: 0
Dołączył: 24.12.2008

Ostrzeżenie: (10%)
X----


Tabele:
- media
- historia

pola w tych tabelach:
- Med
- Kat
- Nr_id

polecenie ma wypisać dane, które są takie same w tych odpowiednich polach
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




No to wykreśl wtedy not, przecież składnia warunku jest identyczna jak zdania rozkazującego w języku angielskim...


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
cent4
post
Post #7





Grupa: Zarejestrowani
Postów: 415
Pomógł: 0
Dołączył: 24.12.2008

Ostrzeżenie: (10%)
X----


Proszę pomóżcie mi zbudować to zapytanie...

Dalej mi nie wychodzi sciana.gif

Rozwiązałem ten problem:
  1. $ZAPYT = "SELECT Med, Kat, Nr_id FROM media WHERE id=$id ORDER BY ".$sidx." ".$sord. " LIMIT ".$start." , ".$limit;
  2. $resultat = mysql_query( $ZAPYT ) or die("Could not execute query.".mysql_error());
  3.  
  4. $row = mysql_fetch_array($resultat);
  5.  
  6. $SQL = "SELECT egzempl.Med, egzempl.Kat, egzempl.Nr_id, egzempl.Nr_egz, egzempl.Wartosc, egzempl.Dostepny, egzempl.Nr_czyt, egzempl.Data_wpr FROM egzempl WHERE Med='$row[Med]' AND Kat='$row[Kat]' AND Nr_id='$row[Nr_id]'


Ale mam kolejne pytanie - jak w polu gdzie mam: egzempl.Nr_czyt - wstawić imie z innej tabeli o odpowiadającym numerze czytelnika?

Ten post edytował cent4 22.02.2011, 15:12:04
Go to the top of the page
+Quote Post
erix
post
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A może byś tak kurs przeczytał jakiś, co nie?


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
cent4
post
Post #9





Grupa: Zarejestrowani
Postów: 415
Pomógł: 0
Dołączył: 24.12.2008

Ostrzeżenie: (10%)
X----


Ale mi pomogłeś. Nie no wielkie dzięki...
Go to the top of the page
+Quote Post
Valdi_B
post
Post #10





Grupa: Zarejestrowani
Postów: 107
Pomógł: 30
Dołączył: 19.02.2011
Skąd: Warszawa

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


Spróbuj taką instrukcję:
  1. SELECT m.*
  2. FROM media AS m JOIN historia AS h
  3. ON m.Med=h.Med AND m.Kat=h.Kat AND m.Nr_id=h.Nr_id
Znaczenie poszczególnych fragmentów:
m.* - wszystkie kolumny z tabeli "m" (synonim Media),
AS m - definicja synonimu "m" (dla tabeli media),
AS h - definicja synonimu "h" (dla tabeli historia),
ON... - warunek łączenia tych 2 tabel - właśnie na równość poszczególnych 3 kolumn.


Ten post edytował Valdi_B 22.02.2011, 22:14:28
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 Aktualny czas: 19.08.2025 - 15:46