1

次の2つのテーブルがあります。

auth_user

  • id
  • ユーザー名
  • is_active(ブール値)..。

useprofile_userprofile

  • id
  • ユーザーID ...

= 0であり、userprofile_userprofileオブジェクトがないすべてのauth_userオブジェクトを見つけるにはどうすればよいですか?たとえば、次のようなエントリ-is_activeuser_id

auth_user

  • id = 1
  • ユーザー名=hello@gmail.com
  • is_active = 0

=1userprofile_userprofileの場合はオブジェクトがありませんuser_id

4

6 に答える 6

3
SELECT *
FROM auth_user A
LEFT JOIN userprofile_userprofile B ON A.id=B.user_id
WHERE A.is_active = false and B.user_id IS NULL

いつそれB.user_idNULLそれがどこの行を見つけることができないことを意味しますuser_id=1。これは、テーブル内のIDがすべてではない
ことを前提としています。userprofile_userprofileNULL

于 2012-04-04T07:16:04.317 に答える
2
select * from auth_user au
where au.is_active = 0 and 
    not exists(select * from userprofile_userprofile uu where uu.user_id = au.user_id)
于 2012-04-04T07:13:19.857 に答える
2
SELECT
    *
FROM
    auth_user
WHERE
    auth_user.is_active=0
    AND NOT EXISTS
        (
            SELECT
                NULL
            FROM
                userprofile_userprofile 
            WHERE
                userprofile_userprofile.user_id=auth_user.id
        )
于 2012-04-04T07:14:07.390 に答える
1

他のソリューションとは別に、次の方法でも実行できますLEFT JOIN

SELECT
*
FROM
auth_user au
LEFT JOIN useprofile_userprofile uu ON au.id = uu.user_id
WHERE uu.id IS NULL
AND au.is_active = 0
于 2012-04-04T07:17:07.573 に答える
0
select au.id,au.username,count(up.id) from auth_user au
left outer join useprofile_userprofile up
on au.id=up.user_id
where is_active = 1 
group by au.id,au.username
having count(up.id)=0
于 2012-04-04T07:19:41.397 に答える
0

テーブル結合を探しています。このチュートリアルを参照してください:

http://www.tizag.com/mysqlTutorial/mysqljoins.php

あなたの質問に答えるために、あなたは次のようなものを探しています:

"SELECT auth_user.username、auth_user.is_active、useprofile_userprofile.user_id WHERE is_active = 0 AND user_id!= 1"

于 2012-04-04T07:17:12.380 に答える