Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytanie SELECT na dwóch tabelach mającyh takie same pola
Forum PHP.pl > Forum > Bazy danych > MySQL
cod3r
Witam,
A więc pytanie dotyczy wykonania zapytania SELECT w celu uzyskania danych z dwóch tabel jednocześnie, problemem jest w moim wypadku to iż obie tabele w bazie mają takie same pola.

Struktury tabel to:
Tabela: pracownik, pola: id, imie, nazwisko
Tabela: uzytkownik, pola: id, imie, nazwisko

Chciałbym wykonać zapytanie które przeszuka tabele i zwróci mi informację czy dane imie znajduje się w bazie, np. Zenon.
Przykład pokazujący co chciałbym osiągnąć, oczywiście on nie zadziała:
  1. SELECT * FROM `pracownik`, `uzytkownik` WHERE imie='Zenon'

szalek01
  1. SELECT
  2. COUNT(id) as count_p,
  3. (SELECT COUNT(id) as count_p FROM `uzytkownik` as u WHERE u.imie='uMichal') as count_u
  4. FROM
  5. `pracownik` as p
  6. WHERE p.imie='uMichal'
cod3r
Ok, a idąc dalej, bo akurat chciałbym przy pomocy takiego zapytania sprawdzać po prostu czy dany rekord jest w bazie czy go nie ma, nie potrzebuję wiedzieć ile ich jest. Przyda mi się to np. do rejestracji.
Korzystam akurat z PDO i używam funkcji rowCount() ale przy powyższym zapytaniu ona zawsze zwróci 1, bo zawsze jeden wiersz jest zwracany.
maly_swd
  1. SELECT * FROM (
  2.  
  3. SELECT * FROM pracownik
  4. UNION ALL
  5. SELECT * FROM uzytkownik
  6.  
  7. ) a
  8. WHERE a.imie='Zenon'
cod3r
Dzięki, o takie coś mi właśnie chodziło.
maly_swd
takie cos powinno byc bardziej optymalne:

  1. SELECT * FROM (
  2.  
  3. SELECT * FROM pracownik WHERE imie='Zenon'
  4. UNION ALL
  5. SELECT * FROM uzytkownik WHERE imie='Zenon'
  6.  
  7. ) a


Mysql mieli wtedy mniej danych:)
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.