sql >> Databasteknik >  >> RDS >> Mysql

Välj mellan flera bord med UNION

Tack för att du uppdaterade frågan; nu kan vi se att WHERE-villkoret endast tillämpas på den senaste UNIONed fråga. Du måste antingen lägg till den där WHERE-satsen i varje fråga, eller slå in den som ett underval och tillämpa WHERE-satsen på den.

select s.id as id, s.email as email, s.password as password, s.role as role from tblStudents s
where email = "[email protected]"
union
select a.id as id, a.email as email, a.password as password, a.role as role from tblAdmin a
where email = "[email protected]"
union
select t.id as id, t.email as email, t.password as password, t.role as role from tblTeachers t
where email = "[email protected]"

eller

SELECT * FROM (
select s.id as id, s.email as email, s.password as password, s.role as role from tblStudents s
union
select a.id as id, a.email as email, a.password as password, a.role as role from tblAdmin a
union
select t.id as id, t.email as email, t.password as password, t.role as role from tblTeachers t
) foo where email = "[email protected]"


  1. Installera Oracle Client från kommandoraden utan användarinteraktion

  2. Postgres-servern svarar inte på en nodejs-förfrågan

  3. Varför väljer vissa mysql-anslutningar gamla data i mysql-databasen efter en radera + infogning?

  4. Hur man beräknar ålder (i år) baserat på födelsedatum och getDate()