Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: konstrukcja zapytanie select
Forum PHP.pl > Forum > Bazy danych > MySQL
Jozjasz
Witam,

Załóżmy, ze mam bazę danych składająca się z dwóch tabel:

patient: id(klucz główny), first_name, last_name, birth_date
testy: id(klucz główny), patient_id(klucz obcy z tabeli 'patient'), opis, data


Nie mogę sobie poradzić z zapytaniem, które miałoby pokazać tych pacjentów, którzy mają najwięcej badń(testów). Jak stworzyć takie zapytanie?


PS
Tak przy okazji, jeśli można, jak zrobić, żeby wyświetlić wszystkich pacjentów i posegregować alfabetycznie, np wg. 'last_name', lecz wymusić aby pacjent Harrison Ford był jako pierwszy(taki wyjątek)?

Z góry dzięki za pomoc
toaspzoo
  1. SELECT testy.patient_id FROM testy, patient.first_name FROM patient WHERE MAX( IN(SELECT count(*) FROM testy WHERE patient.id = testy.patient_id);
Jozjasz
Nie działa.

Wyrzuca błąd:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the rght syntax to use near 'FROM patient WHERE MAX( IN(SELECT count(*) FROM testy WHERE patient.id = testy.' at line 1
mysql>
bpskiba
  1. SELECT p.first_name,p.last_name, COUNT(t.id)
  2. FROM patient p
  3. JOIN testy t ON p.id=t.patient_id
  4. GROUP BY p.id
  5. ORDER BY 3 DESC


  1. SELECT first_name, last_name,IF(last_name='harrison',2,1)
  2. FROM patient
  3. ORDER BY 3,1
Jozjasz
OK, dzięki, a co do drugiego, to Harrison to imię, więc zapytanko nr dwa powinno wygladać:

  1. SELECT first_name, last_name,IF(last_name='ford',2,1) FROM patient ORDER BY 3 DESC, 1;


mmmmmmm
  1. SELECT first_name, last_name FROM patient ORDER BY last_name='ford' DESC, 1;
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.