Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] Łączenie dwóch zapytań w jedno
Fred1485
post 2.08.2015, 16:41:38
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


--------------------
  1. echo 'I was trying';
  2. die ();
Go to the top of the page
+Quote Post
vokiel
post 2.08.2015, 16:48:02
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 2.08.2015, 16:48:35
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 2.08.2015, 16:53:13
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 2.08.2015, 18:19:09
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ć?


--------------------
  1. echo 'I was trying';
  2. die ();
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 Wersja Lo-Fi Aktualny czas: 23.05.2024 - 21:30