我想从两个表中选择数据,但它们没有任何共同之处。
表格'用户'字段是uid,uname和uemail
和
在表格中'患者'字段是pid,pame和pemail
现在,我想在一列中选择所有用户的电子邮件和患者电子邮件ID。 我该怎么做?
答案 0 :(得分:0)
您可以使用UNION
执行此操作SELECT uemail FROM users
UNION
SELECT pemail FROM patients;
如果要区分电子邮件的表格,请添加一个具有常量值的列:
SELECT
'users' as source, uemail
FROM users
UNION
SELECT
'patients', pemail
FROM patients;
请注意,如果没有关键字ALL
,您将只获得不同的行。
修改强>
如果您需要其他列的值,只需将它们添加到您的选择中:
SELECT
'users' as source,
uid,
uname,
uemail
FROM users
UNION
SELECT
'patients',
pid,
pname,
pemail
FROM patients;
现在您可以使用WHERE子句进行过滤。请注意列名将取自第一个SELECT语句。
SELECT * FROM
(SELECT
'users' as source,
uid as id,
uname as name,
uemail as email
FROM users
UNION
SELECT
'patients',
pid,
pname,
pemail
FROM patients
) u
WHERE
u.id = 3;
答案 1 :(得分:-1)
简单 SELECT * FROM用户,患者