Abfrage in der einen oder in der anderen Tabelle

Malaxo

Erfahrenes Mitglied
Hey Leute

Ich habe eine Tabelle für Firmen und eine Tabelle für Private. Wenn sich eine Firma oder ein Privater registrieren will, soll geprüft werden ob die E-Mailadresse in der einen oder anderen Tabelle schon existiert.

Falls die E-Mailadresse in einer der Tabellen existiert, kann sich der User nicht registrieren, weil er bereits registriert ist.

Ich habe das hier:
Code:
(SELECT COUNT(email) from customers where `email` = 'email.adresse@gmail.com')
UNION
(SELECT COUNT(email) from companies where `email` = email.adresse@gmail.com')

Geht das noch schöner?
evtl. ohne UNION, am liebsten etwas mit DISTINCT über beide Tabellen. Bekomme es aber nicht hin. Auch mit JOIN nicht, brauche eure Hilfe.
 
UNION ist das was du brauchst. Ich geh mal von MySQL aus, dann kannst du es nur noch durch Subqueries verschönern

SQL:
SELECT
	COUNT(*) AS email_exists
FROM
	(
		SELECT email FROM customers 
		UNION DISTINCT SELECT email FROM companies
	) AS all
WHERE
	all.email =  'email.adresse@gmail.com'
 
Zuletzt bearbeitet von einem Moderator:
Also war ich schon auf dem richtigen Weg.

Ja, ist MySQL sorry. Dein Code hat aber einen Schönheitsfehler, mit "ALL" geht es nicht, das muss sonst was heissen.

Danke Dir!
 

Neue Beiträge

Zurück