Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Pokročilejší SQL dotaz

Ahoj. Mám tři tabulky.
První se jmenuje adress_book
druhá se jmenuje skupina_hlavni
a třetí se jmenuje skupina_obsah


První tabulka obsahuje emaily.
druhá obsahuje seznam zákaznických skupin
a třetí definuje, které emaily patří do jaké skupiny.

A já mám uloženo několik skupin v skupina_hlavní a v skupina_obsah mám již několik ID adres.

A nyní co zjednodušeně chci:

Chci, aby pokud je ve vybrané skupině (v skupina_obsah) nalezeno ID shodné v adress_book, aby měl nenulovou hodnotu sloupec checkbox_checked.

Zjednoduším to zadáním: Pokud edituji konkrétní zákaznickou skupinu, můžu si vybírat z tabulky adress_book všechny příjemce a přiřazovat je do této skupiny.

A v uživatelském rozhraní se zobrazuje u seznamu VŠECH adres checkbox, který je zaškrknutý v případě, že je email ve skupině. Opravdu jednoduché, ale jak na to?


Dopracoval jsem se k následujícímu dotazu:

SELECT entry_state, address_book_id as address_book_id, entry_company as entry_company, p.id_adresy checkbox_checked
FROM address_book LEFT JOIN skupina_obsah p ON p.id_adresy = address_book_id WHERE entry_state NOT LIKE ' ' and p.id_skupiny = 6 group by entry_state ORDER BY entry_company");



Tento dotaz má však tu zásadní chybu, a to ,že vybírá jen obsažené (checked) adresy.

Jak ho mám přepsat, aby vypisoval všechny adresy z adress_book a ty, které jsou zároveň obsaženy v skupina_obsah.id_adresy , aby měly sloupec checkbox_checked nenulový?

Odpověď na otázku

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny