PHP在数据库的两个表中搜索

时间:2019-06-23 13:29:36

标签: php wordpress search

我想按名称和标记后搜索文件。

如果分配给文件的标签与您要查找的单词匹配,则该文件也将被计数。

我有三个表:

tags
id | name

tags_files
id | id_tag | id_file

files
id | name | category

现在我只在“文件”表中按名称搜索。

$how_many = $this->wpdb->get_var($this->wpdb->prepare("SELECT COUNT(*) FROM {$this->table_files} WHERE name LIKE %s AND category IN ($subcategories)", '%' .  $this->wpdb->esc_like($search) . '%')); 

每个文件都在“ tags_files”表中分配了标签。

如何解决这个问题?

=======================

如果需要,您可以在以下类别中添加搜索:

WHERE (tags.name LIKE '%search%' OR files.name LIK '%search%' ) AND ($this->files.category IN ($subcategories))

1 个答案:

答案 0 :(得分:1)

SELECT files.* FROM files
LEFT JOIN tags_files ON tags_files.id_file = files.id
LEFT JOIN tags ON tags.id = tags_files.id
WHERE tags.name LIKE '%search%' OR files.name LIK '%search%'