sql >> データベース >  >> RDS >> Mysql

UNIONを使用して複数のテーブルから選択する

    クエリを更新していただきありがとうございます。これで、WHERE条件が最後のにのみ適用されることがわかります。 UNIONedクエリ。 どちらかにする必要があります そのWHERE句を各クエリに追加するか、副選択としてラップしてWHERE句を適用します。

    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]"
    

    または

    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. MySQLが重複キーに行を挿入して複数の列を更新

    2. InnoDBとMyISAMのMySQLAtomicUPDATE

    3. postgresで行番号を選択します

    4. SQL Serverのvarcharまたはcharフィールドで許可されているすべての特殊文字を確認するにはどうすればよいですか?