Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: dwa lub więcej Zapytań MYSQL
Forum PHP.pl > Forum > Bazy danych
Robert007
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ę)
Spawnm
Poczytaj o 'left join' , i pisz normalnie winksmiley.jpg
Robert007
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. ?>
maly_swd
  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;)
Robert007
a jak pobierać dane?
muszę robić to tak?:

  1. <?php
  2. $row['t1.kolumna']
  3.  
  4. $row['t2.kolumna']
  5. ?>
SzamanGN
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. ?>
Robert007
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. ?>
maly_swd
  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'];
Robert007
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 ?
maly_swd
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
Robert007
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 ..
maly_swd
to juz lepiej z group by lub w ostatecznosci distinct
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.