Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] sprawdzenie istnienia rekordu w kilku tabelach jednym zapytaniem
Forum PHP.pl > Forum > Przedszkole
piotrekkr
Witam. Mam problem ze sprawdzeniem w 2 tabelach czy istnieją rekordy w którejś z nich:

  1. CREATE TABLE module_Uniwerki_students (
  2. student_id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  3. login varchar(20) NOT NULL
  4. )
  5.  
  6. CREATE TABLE module_Uniwerki_professors (
  7. profesor_id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  8. login varchar(20) NOT NULL
  9. )


probowałem tym sposobem i niby działa:
  1. SELECT COUNT( students.login ) AS is_student, (
  2.  
  3. SELECT COUNT( professors.login )
  4. FROM `module_Uniwerki_professors` AS professors
  5. WHERE professors.login = 'zdzichu'
  6. ) AS is_professor
  7. FROM `module_Uniwerki_students` AS students
  8. WHERE students.login = 'zdzichu'

ale czy jest bardziej zgrabny sposób na zrobienie tego samego bez użycia podzapytań?
WAN
Ale jesli dziala, to w czym problem? smile.gif
Jesli chcesz zrobic to inaczej, to mozesz uzyc SELECT * FROM tablica i potem sprawdzic liczbe wpisow za pomoca mysql_num_row - tez powinno smigac.
piotrekkr
Chodzi o to ze przez select * i num rows jest mniej efektywnie (bo niepotrzebnie pobiera wszystkie rekordy z bazy) i mniej sensownie bo chce wiedzieć tylko czy istnieje dany rekord w bazie nic poza tym. Podzapytania z tego co wiem są wolniejsze niż zwykłe zapytania dlatego zastanawiam się czy można zastosować jakąś inna metodę.
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.