从两个表中选择数据,其中根本没有公共字段

时间:2014-07-19 12:39:41

标签: php mysql sql select

我想从两个表中选择数据,但它们没有任何共同之处。

  

表格'用户'字段是uid,uname和uemail

  

在表格中'患者'字段是pid,pame和pemail

现在,我想在一列中选择所有用户的电子邮件和患者电子邮件ID。 我该怎么做?

2 个答案:

答案 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用户,患者