Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] sprawdzenie istnienia rekordu w kilku tabelach jednym zapytaniem
piotrekkr
post
Post #1





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


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ń?

Ten post edytował piotrekkr 16.02.2008, 17:24:46
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
WAN
post
Post #2





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 30.12.2007

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


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.
Go to the top of the page
+Quote Post
piotrekkr
post
Post #3





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


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ę.
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: 20.08.2025 - 02:35