Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Mysql, pobieranie danych z 3 tabel na raz xD
dekros
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 9.07.2015

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


Witam mam 3 tabele
USERS, pola name,uid(moje unikalne id)
PERM, value
PREMIUM, uid
(wypisałem tylko pola które mnie interesują)
i chce zrobić zapytanie typu select który pobierze mi wszystko userów z bazy USER których name nie ma w bazie PERM pod polem value oraz tych których uid nie znajduje sie w bazie PREMIUM.
próbowałem
SELECT * FROM users JOIN perm ON users.name != perm.value;
i niestety było tak że jeden user był pokazany tyle razy ile jest rekordów w tabeli perm;/
taki przykład
USERS
name = dekros uid=1231231123
name = test uid = 939293902
name = testowy uid = uid = 3213598003
PERM
value = dekros
PREMIUM
uid = 3213598003
i zapytanie powinno pokazać mi tylko gracza test bo znajduje sie tylko w tabeli USERS, gracza dekros nie bo jest w PERM a test tez nie bo jest w PREMIUM

Ten post edytował dekros 6.09.2016, 16:34:20
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
javafxdev
post
Post #2





Grupa: Zarejestrowani
Postów: 95
Pomógł: 7
Dołączył: 27.10.2015

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


Nie rób LEFT JOINa bo będziesz cierpiał jak będzie więcej danych, czemu tak jest?
Ponieważ optymizer SQL musi zrobić całego JOINA, a dopiero potem przefiltrować wyniki.
"That's why the LEFT JOIN / IS NULL query takes 2-3 times as much as the NOT EXISTS / NOT IN query."

Poszukaj opracowań w internecie czemu tak jest, jak jesteś ciekawy.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 5.10.2025 - 01:18