Temel MySQL soru: nasıl başka tabloda olmayan bir tablodan satırları almak için?

4 Cevap php

I + benim "kullanıcılar" tablosunda diğer bilgiler (bir "kullanıcı adı" olarak adlandırılan sütun ile) adlarının bir listesi var.

Ben de küçük "recentusers" tablosunda ("username" adlı bir sütun ile) adlarının bir listesi var.

How can I create a mysql query to get all the usernames that are in the "users" table but not in the "recentusers" table?

Ben muhtemelen çok basit olduğunu biliyorum, ancak herhangi bir yardım mutluluk duyacağız!

4 Cevap

select username from users where username not in (select username from recentusers)

Sonra ilk adınızdan sonra siz de seçmek istediğiniz diğer bilgileri ekleyin.

OMG Ponies işaret ettiği gibi, bu sorgu kullanarak olarak hızlı çalışacağını Left Join or Is null.

NOT IN anahtar kelime yardımcı olmalıdır:

SELECT username
FROM users
WHERE username NOT IN (
    SELECT username
    FROM recentusers
)

Ayrıca sol katılmak (bir alt sorgu daha hızlı yapacak olan) kullanabilirsiniz:

SELECT
    users.username
FROM
    users LEFT JOIN recentusers
        ON users.username = recentusers.username
WHERE
    recenterusers.username is null

Mysql destekliyorsa, ben gerçekten bilmiyorum ama Katıldı, sorgular daha hızlı olmalıdır.

select * from users
left outer join recentusers
on users.key = recentusers.key