Mysql从多个表中查询选择数据并进行比较

时间:2015-05-05 14:32:17

标签: mysql

我有三个表格,即个人资料,学术,付款和这些表格,其中有两个相同的列,即用户名和状态。

我的问题是如何从所有表中状态= 1的表中选择用户名

1 个答案:

答案 0 :(得分:1)

通常情况如下:

SELECT * FROM profile
  LEFT JOIN academic ON profile.username=academic.username
  LEFT JOIN payment ON profile.username=payment.username
  WHERE profile.status=1 AND academic.status=1 AND payment.status=1

因为以username作为关键字的注释通常是一件坏事,通常非常糟糕,因为如果有人能够更改其名称,则需要更新N个其他表。您可能会遇到忘记更新一个或多个表的情况,然后有人使用以前的名称注册并且"继承"这个数据。

INDEX整数值足够时,使用字符串user_id键通常也非常低效。