Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]optymalizacja, dwa zapytania w jedno.
Forum PHP.pl > Forum > Przedszkole
ZaXaZ
próbowałem napisać JOIN jednak nie wiedziałem jak zrobić w drugiej tabeli COUNT(*).

  1. SELECT description, STATUS FROM opis
  2.  
  3. SELECT COUNT(*) AS count FROM users WHERE online='tak'


Mógłby ktoś złączyć te zapytania w jedno, żeby przy okazji było optymalne?, dzięki.
nospor
A moze bys tak napisal wpierw w jaki sposob te dwie tabele się łączą....
ZaXaZ
Cytat(nospor @ 25.07.2014, 14:40:14 ) *
A moze bys tak napisal wpierw w jaki sposob te dwie tabele się łączą....


chyba ich się nieda połączyć - z myśłą o JOIN, bo nie mają nic wspólnego.
ale chce je połączyć - z myślą o optymalizacji.

tabele prezętują się tak:

opis:
status, description

users:
online
(...)

i chce zliczyc z users osoby ktore maja online='tak', a z opis poprostu pobrac status, description.
nospor
No to skoro tabele nie mają nic wspolnego, to sie nie robi JOINow.

Jak tak bardzo chcesz dac to w jedno zapytanie, to uzyj UNION. Pamietaj tylko, ze zapytania w UNION muszą zwracac taką samę licze kolumn
Jesli wiec jedno zapytanie zwraca dwie kolumny, a drugie tylko jedną, to dodaj jeszcze jedną sztuczną kolumne:
SELECT COUNT(*) AS count,'blabla' FROM users WHERE online='tak'
patryczakowy
  1. SELECT description, STATUS, (SELECT COUNT(*) FROM users WHERE online='tak') AS count FROM opis
ZaXaZ
dzięki nospor, patryczakowy oba rozwiązania dość szybkie.

Przy okazji: powie ktoś co oznaczają nawiasy SQL? Bo kod wygląda jak dla mnie nie logicznie ale działa prawidłowo. - a ktoś już dawał mi na tym forum taki kod (z nawiasami) i też tak samo.
Turson
TO jest podzapytanie
Wazniak96
Jak już tak się zagłębiać w sprawy optymalizacji i poprawności to wartość online lepiej żeby była w postaci bool (0/1) wink.gif
irmidjusz
@Wazniak96: być może ta kolumna online jest typu enum?...
Pyton_000
Cytat(irmidjusz @ 28.07.2014, 10:46:05 ) *
@Wazniak96: być może ta kolumna online jest typu enum?...

Nie liczyłbym na to ;P
ZaXaZ
@Wazniak96 dzięki pozmieniam smile.gif na początku miałem myśl tylko żeby działało.
@irmidjusz póki co varchar ale zmienie na tinyint.
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.