एसक्यूएल क्वेरी क्वेरी - mysql, sql

एसक्यूएल क्वेरी उन लेखकों की सूची प्राप्त करने के लिए जिन्होंने सभी शैलियों पर कम से कम एक पुस्तक लिखी है

टेबल्स हैं

      Author_id  |  Author_info  => authors
Genre_id   |  Genre_info   => genres
Author_id  |  Genre_id  |  Book_id  => books

मैं माइस्क्ल का उपयोग कर रहा हूं, ऐसा करने का सबसे अच्छा तरीका क्या होगा?

उत्तर:

जवाब के लिए 2 № 1

यदि एन विशिष्ट शैलियों की संख्या है:

select author_id, count(distinct genre_id) as genres
from books
group by author_id
having genres = N

उत्तर № 2 के लिए 1

इस के रूप में मान लिया डेटाबेस स्कीमा

authors
|-  Author_id  -|- Author_info -|
genres
|-  Genre_id   -|- Genre_info  -|
books
|-  Author_id  -|-  Genre_id   -|-  Book_id -|

सवाल

SELECT authors.Author_id
FROM authors
LEFT INNER JOIN books ON (authors.Author_id = books.Author_id)
GROUP BY authors.Author_id
HAVING COUNT(DISTINCT books.Genre_id) = (SELECT COUNT(*) FROM genres)

जवाब के लिए 0 № 3

इसे इस्तेमाल करे:

लेखक_आईडी चुनें
किताबों से
INNER जॉइन जेनर का उपयोग (शैली)
लेखक_आईडी द्वारा ग्रुप
हैविंग COUNT (Author_id)> = (शैली से COUNT (*) चुनें);

जवाब के लिए 0 № 4

सभी शैलियों पर कम से कम एक पुस्तक लिखी के लिए

प्रयत्न...

select author_id, count(distinct genre_id) as genres
from books
group by author_id
having genres >= 1

संबंधित सवाल
सबसे लोकप्रिय