Hallo,
Ik ben bezig met het aanpassen van een SELECT statement voor een MYSQL database, en ik loop tegen een probleem aan. Het statement dat ik schrijf wordt gebruikt in de configure file van Exim (om op te zoeken of een binnenkomend mailtje mag worden afgeleverd).
Het oorspronkelijke statement is als volgt:
VIRTUAL_DOMAINS = SELECT DISTINCT domain FROM Maildomains WHERE type = 'local' AND enabled = '1' AND domain = '${quote_mysql:$domain}'
Dit statement haalt een domeinnaam op uit de database. Eigenlijk vrij simpel. Maar, in de omgeving waarin ik Exim gebruik staat de domeinnaam (voorbeeld.nl) niet in Maildomains, maar in Domains. De overige mailgegevens van dat domein staan wel weer in Maildomains.
In Maildomains staat in de column 'domain' slechts een uid die verwijst naar de tabel Domains. In Domains bevinden zich de columns uid, name en ext (van extensie).
Dat betekent dus dat ik het statement moet herschrijven, zodat Domains.name en Domains.ext gecombineerd worden in één column. Vraag is nu, hoe doe ik dat?
Ik heb een pseudo-sql-statement opgeschreven, maar die is vast niet goed:
VIRTUAL_DOMAINS = SELECT DISTINCT ("D.name" + "D.ext") AS domain FROM Maildomains AS M, Domains AS D WHERE M.type = 'local' AND M.enabled = '1' AND ("D.name" + "D.ext") = '${quote_mysql:$domain}' AND M.domain = D.uid;
Hierin is te zien dat er nog een tweede probleem is. In het tweede deel van het statement vergelijk ik twee colums met één waarde (("D.name" + "D.ext") = '${quote_mysql:$domain}'). Is zoiets uberhaupt mogelijk?
M.b.v. Google heb ik het antwoord op deze vraag niet kunnen vinden. Misschien zoek ik op de verkeerde sleutelwoorden; hierbij dan alvast mijn excuses.
Ik ben bezig met het aanpassen van een SELECT statement voor een MYSQL database, en ik loop tegen een probleem aan. Het statement dat ik schrijf wordt gebruikt in de configure file van Exim (om op te zoeken of een binnenkomend mailtje mag worden afgeleverd).
Het oorspronkelijke statement is als volgt:
VIRTUAL_DOMAINS = SELECT DISTINCT domain FROM Maildomains WHERE type = 'local' AND enabled = '1' AND domain = '${quote_mysql:$domain}'
Dit statement haalt een domeinnaam op uit de database. Eigenlijk vrij simpel. Maar, in de omgeving waarin ik Exim gebruik staat de domeinnaam (voorbeeld.nl) niet in Maildomains, maar in Domains. De overige mailgegevens van dat domein staan wel weer in Maildomains.
In Maildomains staat in de column 'domain' slechts een uid die verwijst naar de tabel Domains. In Domains bevinden zich de columns uid, name en ext (van extensie).
Dat betekent dus dat ik het statement moet herschrijven, zodat Domains.name en Domains.ext gecombineerd worden in één column. Vraag is nu, hoe doe ik dat?
Ik heb een pseudo-sql-statement opgeschreven, maar die is vast niet goed:
VIRTUAL_DOMAINS = SELECT DISTINCT ("D.name" + "D.ext") AS domain FROM Maildomains AS M, Domains AS D WHERE M.type = 'local' AND M.enabled = '1' AND ("D.name" + "D.ext") = '${quote_mysql:$domain}' AND M.domain = D.uid;
Hierin is te zien dat er nog een tweede probleem is. In het tweede deel van het statement vergelijk ik twee colums met één waarde (("D.name" + "D.ext") = '${quote_mysql:$domain}'). Is zoiets uberhaupt mogelijk?
M.b.v. Google heb ik het antwoord op deze vraag niet kunnen vinden. Misschien zoek ik op de verkeerde sleutelwoorden; hierbij dan alvast mijn excuses.
[ Voor 11% gewijzigd door Verwijderd op 24-07-2005 14:49 ]