Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> dwa lub więcej Zapytań MYSQL
Robert007
post 11.07.2009, 12:46:14
Post #1





Grupa: Zarejestrowani
Postów: 167
Pomógł: 2
Dołączył: 1.07.2009
Skąd: Poznań

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


Otóż chodzi mi o to inż potrzebuje w jednym zapytaniu do bazy aby otwierało mi dwie tabele naraz i wyszukiwało porównania typu np liczba

tabela1 = 2
tabela2 = 2

czyli jeżeli w tabeli1 jest w wybranej kolumnie 2 w w tabeli2 tez jest w którymś wpisie i wybranej kolumnie 2 to warunek się spełnia (z warunkiem sobie poradzę)
Go to the top of the page
+Quote Post
Spawnm
post 11.07.2009, 12:51:08
Post #2





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Poczytaj o 'left join' , i pisz normalnie winksmiley.jpg
Go to the top of the page
+Quote Post
Robert007
post 11.07.2009, 13:03:57
Post #3





Grupa: Zarejestrowani
Postów: 167
Pomógł: 2
Dołączył: 1.07.2009
Skąd: Poznań

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


Cytat(Spawnm @ 11.07.2009, 13:51:08 ) *
Poczytaj o 'left join' , i pisz normalnie winksmiley.jpg



czyli nie rozumiesz o co mi chodzi?

chodzi mi o przeszukiwanie dwóch tabel w bazie i szukanie porównania:

  1. <?php
  2. if( tabela1_KOLUMNA  ==  tabela2_KOLUMNA  && tabela1_KOLUMNA == 2 )
  3. ?>
Go to the top of the page
+Quote Post
maly_swd
post 11.07.2009, 13:19:28
Post #4





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

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


  1. SELECT * FROM tabela1 t1
  2. JOIN tabela2 t2 ON t1.kolumna=t2.kolumna
  3. WHERE t1.kolumna=2


zgodnie z tym co zapisales powinno to wygladac tak;)


--------------------
śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu..
Go to the top of the page
+Quote Post
Robert007
post 12.07.2009, 19:46:51
Post #5





Grupa: Zarejestrowani
Postów: 167
Pomógł: 2
Dołączył: 1.07.2009
Skąd: Poznań

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


a jak pobierać dane?
muszę robić to tak?:

  1. <?php
  2. $row['t1.kolumna']
  3.  
  4. $row['t2.kolumna']
  5. ?>
Go to the top of the page
+Quote Post
SzamanGN
post 12.07.2009, 19:53:18
Post #6





Grupa: Zarejestrowani
Postów: 94
Pomógł: 14
Dołączył: 11.10.2007

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


Zamiast * wpisz nazwy kolumn, które są tobie potrzebne, a odczytujesz:

  1. <?php
  2. $odpowiedz=mysql_fetch_array($wynikZapytania))
  3. echo $odpowiedz['nazwa danej kolumny'];
  4. ?>


--------------------
SzamanGN
Go to the top of the page
+Quote Post
Robert007
post 12.07.2009, 20:17:53
Post #7





Grupa: Zarejestrowani
Postów: 167
Pomógł: 2
Dołączył: 1.07.2009
Skąd: Poznań

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


Cytat
$odpowiedz=mysql_fetch_array($wynikZapytania))


ja wiem czym się odczytuję bo w tym siedzę ponad 2 mc a w php od 6mc
chodzi mi dokładnie o to że mam taka sytuacje że w tabeli1 mam kolumne o nazwie np "id" i w drugiej tabeli też mam kolumne o nazwie "id" i chciałem pobrać jak w/w osobno czyli coś takiego:

  1. <?php
  2. echo $odpowiedz['tabela1.id'].' '.$odpowiedz['tabela2.id'];
  3. ?>
Go to the top of the page
+Quote Post
maly_swd
post 12.07.2009, 20:48:01
Post #8





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

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


  1. SELECT t1.id AS tab1_id, t2.id AS tab2.id, t2.kolumna AS jakas_nazwa_unikalna FROM tabela1 t1
  2. JOIN tabela2 t2 ON t1.kolumna=t2.kolumna
  3. WHERE t1.kolumna=2


przez as nadajesz alias:)

a pozniej w pehapie

echo $wynik['tab1_id'];
echo $wynik['jakas_nazwa_unikalna'];


--------------------
śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu..
Go to the top of the page
+Quote Post
Robert007
post 12.07.2009, 22:57:18
Post #9





Grupa: Zarejestrowani
Postów: 167
Pomógł: 2
Dołączył: 1.07.2009
Skąd: Poznań

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


dlaczego jak stworze zapytanie na podstawie przeszukiwanie dwóch tabel lub trzech to mi wyświetla 2 razy to samo lub jak użyje 3 tabele to 6 razy to samo ?
Go to the top of the page
+Quote Post
maly_swd
post 12.07.2009, 23:17:45
Post #10





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

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


poniewaz laczysz na krzyz , to sie chyba nazywa iloczyn kartezjanski

albo np:
masz trzy wpisy w tabeli1 ktorej kazdemu wpisowi odpowiadaja 2 wpisy w tabeli2

czyli powinno byc 6 wynikow

Ten post edytował maly_swd 12.07.2009, 23:19:16


--------------------
śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu..
Go to the top of the page
+Quote Post
Robert007
post 12.07.2009, 23:25:39
Post #11





Grupa: Zarejestrowani
Postów: 167
Pomógł: 2
Dołączył: 1.07.2009
Skąd: Poznań

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


Jak chcę przeszukać wszystkie 3 tabele to najlepiej zrobić osobne zapytania do bazy i porównania za pomocą if'a?
tylko nie wiem czy nie będzie za bardzo serwera obciążać




PS: przypadkiem dałem pomógł zamiast odpowiedz ..
Go to the top of the page
+Quote Post
maly_swd
post 13.07.2009, 00:14:14
Post #12





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

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


to juz lepiej z group by lub w ostatecznosci distinct


--------------------
śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu..
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: 18.08.2025 - 22:26