Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] Łączenie dwóch zapytań w jedno
Fred1485
post
Post #1





Grupa: Zarejestrowani
Postów: 361
Pomógł: 22
Dołączył: 10.02.2015

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


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

Ten post edytował Fred1485 2.08.2015, 16:42:18
Go to the top of the page
+Quote Post
vokiel
post
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


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





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


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


Ten post edytował CuteOne 2.08.2015, 16:48:44
Go to the top of the page
+Quote Post
pasman
post
Post #4





Grupa: Zarejestrowani
Postów: 70
Pomógł: 4
Dołączył: 16.03.2012

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


Ad 1. Dodaj kolumne sum(user_id=0)
Go to the top of the page
+Quote Post
Fred1485
post
Post #5





Grupa: Zarejestrowani
Postów: 361
Pomógł: 22
Dołączył: 10.02.2015

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


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ć?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 01:52