MYSQL MULTIPLE TABLE JOIN使用模式匹配/ JOIN

时间:2013-01-22 19:49:27

标签: php mysql

我在mysql中使用多表select语句来过滤某些用户输入的查询。输入$ _POST值为:1.zipcode [来自位置表]或2.city [来自位置表]和/或3.on_date [来自日历表]和/或4.title [来自posts表]。

FROM table_many
INNER JOIN posts ON posts.title LIKE '%{$title}%'
INNER JOIN users ON users.user_id = posts.user_id
INNER JOIN locations ON locations.post_id = posts.post_id AND locations.city = '$city[0]'
LEFT JOIN calendar ON calendar.post_id = posts.post_id AND calendar.on_date = '$date'
LEFT JOIN uploads ON posts.post_id = uploads.post_id 
WHERE table_many.cat_id = '$row_cat[0]' AND table_many.post_id = posts.post_id";

此设置适用于这些位置。我可以输入邮政编码或城市,并且查询过滤正确,但是从输入设置的$ date和$ title值不会检索任何记录。

有什么想法吗?或者你需要更多信息?提前谢谢。

1 个答案:

答案 0 :(得分:0)

您在标题INNER JOIN posts ON title LIKE '%{$title}%'

中遗漏了tableName

tableName.title

我没有看到任何查询会使它无法正常工作,但是lemme再看看它