双结果MYSQL查询(Drupal数据库)

时间:2016-08-08 13:28:46

标签: mysql join double

我试图获取一个SQL结果,我希望将某些字段连接到用户(来自Drupal数据库)。我的查询如下:

SELECT * FROM users LEFT OUTER JOIN field_data_field_wekelijkse_newsletter ON users.uid = field_data_field_wekelijkse_newsletter.entity_id 
                LEFT OUTER JOIN field_data_field_woonplaats ON users.uid = field_data_field_woonplaats.entity_id
                LEFT OUTER JOIN field_data_field_naam ON users.uid = field_data_field_naam.entity_id

我有两个问题:

  1. 我得到双重结果(用户名)
  2. " field_data_field_wekelijkse_newsletter"的值在双重结果中是不同的。
  3. 有人可以帮我写一个好的查询吗?

1 个答案:

答案 0 :(得分:0)

在不了解您的数据模型的情况下,只关闭列的命名,毕竟结果可能不重复。如果用户可以订阅多个时事通讯,那可能就是正在发生的事情。您将返回{{1>}所在的每个表格中的所有字段。如果您提供更多信息,例如模式定义,列名等,我可以提供更准确的答案。

另外,我可以为您提供一些关于编写SQL的样式提示!

  1. 使用换行符和标签,为您身后的开发人员撰写查询!可读查询器是最好的(通常是无bug)查询。

  2. 使用别名。通常,我将别名与变量名称非常相似:我保持有意义。如果你不能为表创建一个有意义的短别名,那么使用表的首字母(对于表名如 field_data_field_woonplaats ,很难创建一个简单的别名!考虑重命名)

    < / LI>
  3. 命名就是一切!将您的表,列,视图,索引,触发器,键,所有内容命名为,以便您(和其他开发人员)可以轻松地记住它们,并且能够掌握并完全理解它们所代表的对象类型(它们拥有的数据)。

  4. 使用分号终止语句。

    JOIN