Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
193 views
in Technique[技术] by (71.8m points)

mysql - As shown in the figure, from these 2 table I want to select a record from 1st table if only if 'is_verified' field in 2nd table contain null or 1

As shown in the figure, from these 2 table I want to select a record from 1st table if and only if is_verified() field in 2nd table contain all nulls or mixture of nulls and 1s against a particular review_id.

enter image description here

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Try this but check change the column name and table as you have in database.

For specific review id:

Select * from table1 a
Inner join table2 b ON a.id = b.review_id
WHERE ( b.is_verified IS NULL OR b.is_verified = 1) AND a.id = 5049

For all reviews:

Select * from table1 a
    Inner join table2 b ON a.id = b.review_id
    WHERE ( b.is_verified IS NULL OR b.is_verified = 1);

If one of them 0 skip record:

Select * from table1 a
    Inner join table2 b ON a.id = b.review_id
    WHERE 
AND b.is_verified != 0
AND a.id = 5049

Anti JOIN EXAMPLE (will skip all others):

SELECT t1.*
FROM Table1 AS t1
WHERE NOT EXISTS
      ( SELECT *
        FROM Table2 AS t2
        WHERE t2.reviewer_id = t1.id
          AND t2.is_verified = 0
      ) 

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...