MySql单个查询,两个表相同的字段名称
我有两个数据库表一个叫做客户端,另一个是用户。我试图从两个表中选择单个字段“email”。请注意,该电子邮件字段位于两个表中。MySql单个查询,两个表相同的字段名称
表客户包含10条记录,而用户有5个记录。
下面的查询工作,但由于某些原因的记录是重复的,这样反而让15条记录总,我结束了50好像从一个表中的记录是通过从其他表中的记录成倍增加。
SELECT
clients.email,
users.email
FROM
clients,
users;
任何帮助,将不胜感激。
尝试重命名字段
对于客户表
clients_email
对于用户表
users_email
然后查询作为
SELECT clients.clients_email, users.users_email FROM clients, users WHERE clients.clients_email = users.users_email;
希望它可以帮助
为什么需要重命名? – 2014-12-19 03:37:58
我从来没有说过这是必需的。我说,尝试重命名......这意味着,如果他愿意,他可以做到这一点......这不是必须的 – 2014-12-19 03:39:14
我收到“常规错误:1271归类为经营非法搭配'UNION'“ – user3176519 2014-12-19 03:46:08
看起来你在表和列上都有不同的排序规则。更改它们的排序规则并使它们相同。 http://stackoverflow.com/questions/1294117/how-to-change-collation-of-database-table-column http://stackoverflow.com/questions/742205/mysql-alter-table-collation – 2014-12-19 03:57:30
你得到50行,因为CROSS JOIN是发生在那里,去内连接或左连接或右连接,按您的选择,最好是内连接... 采取一些共同的属性,如ID或类似的东西...
select clients.email, users.email from clients,users where clients.id=users.id...
你需要一个连接或where子句。查看http://en.wikipedia.org/wiki/Join_%28SQL%29 – j08691 2014-12-19 03:33:14
由于您没有应用任何条件或连接,查询必然会返回来自两个表的所有电子邮件字段。 – Aditya 2014-12-19 03:33:25
我想从两个表中返回电子邮件字段。这是完整的一点,但不是15个结果,我得到50.每个记录重复x10 – user3176519 2014-12-19 03:49:05