我有两个数据库表,一个叫客户端,另一个叫用户。我正在尝试从两个表中选择单个字段"电子邮件"。请注意,该电子邮件字段位于两个表中。
表客户端包含 10 条记录,而用户有 5 条记录。
下面的查询有效,但由于某种原因记录是重复的,所以我最终得到的不是总共 15 条记录,而是 50 条。似乎一个表中的记录乘以另一个表中的记录。
SELECT
clients.email,
users.email
FROM
clients,
users;
任何帮助将不胜感激。
查询返回笛卡尔乘积
您可以简单地使用union all
select email from clients
union all
select email from users
你得到 50 行,因为那里发生了交叉联接,根据您的选择进行内部联接或左联接或右联接,最好是内联接...在两个方面都采取一些共同的属性,比如 id 或其他东西......
select clients.email, users.email from clients,users where clients.id=users.id...
尝试重命名字段
"对于客户端"表
clients_email
"对于用户"表
users_email
然后查询为
SELECT clients.clients_email, users.users_email FROM clients, users WHERE clients.clients_email = users.users_email;
希望对你有帮助