Autor Zpráva
lukisek
Profil *
Ahoj,
potřeboval bych poradit, mam tabulku student a druhou tabulku dobrovolné předměty. V tabulce dobrovolne předměty je id uživatele a id předmětu... jak mam udělat dotaz aby mi vypsal všechny studenty, kteří nemají žádný předmět...diky za radu...
Alphard
Profil
select * from A left join B on A.id = B.id where B.id is null
Chuchycek
Profil
SELECT student.student_id, COUNT(dobrovolne_predmety.student_id) as pocet
FROM student
LEFT JOIN dobrovolne_predmety
ON student.student_id=dobrovolne_predmety.student_id
WHERE dobrovolne_predmety.student_id IS NULL
juriad
Profil
Případně takto:
SELECT * FROM student s WHERE s.id NOT IN (SELECT dp.student FROM dobrovolne_predmety dp)
Kajman
Profil
Jen pro přehlednost doplním obě varianty, kdy výpis omezuje jen na nějaký školní rok.
SELECT s.*
FROM   student s
       LEFT JOIN dobrovolne d
              ON s.id = d.id_uzivatele
                 AND d.skolnirok = 2014
WHERE  d.id_uzivatele IS NULL 

SELECT s.*
FROM   student s
WHERE  s.id NOT IN (SELECT DISTINCT d.id_uzivatele
                    FROM   dobrovolne d
                    WHERE  d.skolnirok = 2014
                   )

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: