Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Łączenie dwóch zapytań w jedno
Forum PHP.pl > Forum > Przedszkole
Fred1485
Witam, mam dwa pytania

1. Mam strukturę tabeli:

sid | user_id

i teraz chcę policzyć ile jest rekordów, sprawa banalnie prosta wykorzystuję count, ale chcę też pobrać ilość rekordów których user_id = 0. Zapytanie samo w sobie jest też banalne, ale pomyslałem po co dwa razy pytać bazę skoro można by to w jednym zapytaniu zrobić. Chciałbym wynik w postaci:

users | users_offline

próbowałem z UNION i owszem działa ale łączy to wszystko w jedno i powstaje np:

users
3
1

2. Drugie pytanie poboczne. Chcę usunąć rekordy z bazy spełniające kryteria. Lepiej w pierwszym zapytaniu sprawdzić czy są jakieś do usunięcia i jeśli tak to w drugim zapytaniu usuwać czy od razu posłać zapytanie o usunięcie? Pewnie to kwestia wydajności, jak wy to robicie?

pozdrawiam
vokiel
1. Zrób inner join do tej samej tabeli
2. Od razu usuwać, bo jeśli masz link do usuwania to raczej jest podpięty do jakiegoś elementu, czyli raczej on istnieje
CuteOne
  1. SELECT
  2. (SELECT count(u.sid) FROM users u WHERE uid=1) AS ucount,
  3. count(u2.sid)
  4. FROM users u2
pasman
Ad 1. Dodaj kolumne sum(user_id=0)
Fred1485
wszyscy po trochę pomogli dzięki!

a jeszcze że się tak zapytam:


  1. SELECT
  2. (SELECT count(u.sid) FROM users u WHERE uid=1) AS ucount,
  3. count(u2.sid)
  4. FROM users u2


muszę (no w sumie nie muszę ale czy warto) podawać nazwę tabeli.nazwa kolumny bo często korzystam z samej nazwy kolumny? Pewnie chodzi o to żeby pomyłki w pisowni wyłapywać?
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.