Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Programátorský problém + MySQL problém

Zdar.
Mám tady menší oříšek a zajímaly by mě nápady na úrovni SQL i programátorské.

Uvažujme tabulku address_book a tabulku bulletin_registr.

Původní řešení počítalo jen s tabulkou address_book. Tabulka bulletin_registr je nová a zatím je "mimo systém".

Tabulky obsahují sloupec s emaily uživatelů.

A teď....

Existuje třetí tabulka skupina_obsah, která obsahuje vazby mezi tabulkami ID - address_book a ID - skupiny.

Toto umožňuje ve výsledku vytvářet skupiny příjemců, které obsahuje daná skupina (skupina má identické ID).
Ano... je to těžší na pochopení, ale kdyby to bylo jednoduché, nedával bych vám to.

Takže dotaz, který vytvořil skupinu příjemců vypadal nějak takto:

INSERT INTO skupina_obsah (id_skupiny,id_adresy) VALUES (12,14)
A já teď řeším oříšek, jak rozšířit s minimem změn tento zápis tak, abych do toho mohl zařadit i tabulku bulletin_registr.

Zatím mě po poradě napadlo rozšířit tabulku skupina_obsah o další sloupec, který by nesl název tabulky (zda jde o address_book či bulletin_registr).

Nyní tedy tvořím dotaz, který vytáhne z obou tabulek unikátní emaily.

Původní dotaz vypadal takto:

SELECT entry_state, address_book_id AS address_book_id, entry_company AS entry_company, p.id_adresy, p.id_skupiny checkbox_checked
FROM address_book 
LEFT JOIN skupina_obsah p ON p.id_adresy = address_book.address_book_id
AND id_skupiny = 14
WHERE entry_state NOT LIKE ' ' group by entry_state ORDER BY entry_company

A ten se pokouším rozšířit o sloupec z druhé tabulky bulletin_registr, který se jmenuje email.

Zkusil jsem toto:
SQL-dotaz:
SELECT entry_state, address_book_id AS address_book_id, entry_company AS entry_company, p.id_adresy, p.id_skupiny checkbox_checked, 1
FROM address_book
LEFT JOIN skupina_obsah p ON p.id_adresy = address_book.address_book_id
AND id_skupiny =14
WHERE entry_state NOT LIKE ' '
GROUP BY entry_state
ORDER BY entry_company
UNION SELECT email, '', '', '', '', 2
FROM bulletin_registr
LIMIT 0 , 30 

MySQL hlásí:  
#1221 - Incorrect usage of UNION and ORDER BY

Dočetli jste to až sem? Gratuluji.

Ale vděčný budu za řešení.

Tabulka Address_book:

http://pc.poradna.net/file/view/13954-address-book -png

Tabulka bulletin_register

http://pc.poradna.net/file/view/13955-bulletin-reg istr-png

Tabulka Obsah:

http://pc.poradna.net/file/view/13953-obsah-png

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