字符串字段上的JOIN返回不匹配

时间:2018-03-01 18:07:52

标签: mysql

我有两个内部联接的查询。一切正常,我从数据库中获取所需的数据,直到我尝试添加left join我比较两个字符串。所以,一切都是这样的:

$q = 'SELECT * FROM table_1
      INNER JOIN on table_2 WHERE table_1.id=table_2.id
      INNER JOIN on table_3 WHERE table_1.integer_value=table_3.int_value
      LEFT JOIN table_4 ON table_3 WHERE table_3.string_value=table_4.string_value';

这不会返回任何内容。如果我删除LEFT JOIN,一切正常。

我已经看到了我尝试在数据库中加入的两个字符串值,它们在table_4table_3中是相同的。但是我没有得到任何数据。

在查询结果匹配之前,我是否必须修剪字符串或以某种方式操纵它们?

1 个答案:

答案 0 :(得分:1)

您的联接语法错误。查询只能有一个WHERE子句。您希望使用ON子句指定JOIN条件。

$q = 'SELECT * FROM table_1
      INNER JOIN on ON table_1.id=table_2.id
      INNER JOIN on ON table_1.integer_value=table_3.int_value
      LEFT JOIN table_4 ON table_3.string_value=table_4.string_value';