我目前有两个表:
CREATE TABLE files_list
(
'listid' INT,
'name' VARCHAR(25),
'synonym' VARCHAR(25),
'description' VARCHAR(25)
);
CREATE TABLE files_tags
(
'tag_name' VARCHAR(25),
'listid' INT
);
Run Code Online (Sandbox Code Playgroud)
如果有人使用关键字"龙球",目前,我使用以下查询来搜索my_list以查找可能的匹配项:
SELECT *
FROM files_list
WHERE name LIKE '%dragon%'
OR synonym LIKE '%dragon%'
OR description LIKE '%dragon%'
OR name LIKE '%ball%'
OR synonym LIKE '%ball%'
OR description LIKE '%ball%'
Run Code Online (Sandbox Code Playgroud)
我不知道如何使用一个查询搜索两个表.我想向用户显示搜索结果中的以下数据:名称,同义词,描述和所有标签.
我的问题
1.有没有办法让当前的mysql查询更短?2.如何将其与files_tags
表格结合使用,以显示files_list
哪些行匹配files_tags
但不在files_list
?- 显示files_tags`中files_list
匹配的files_list, but may not in
行?
您可以在http://hsbsitez.com/上查看当前显示的结果
我有以下查询.
SELECT p.author_name, p.author_id,
DISTINCT p.topic_id, t.title
FROM `ibf_posts` p, `ibf_topics` t
WHERE p.topic_id = t.tid
ORDER BY pid DESC
LIMIT 8"
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我得到以下MySQL错误:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DISTINCT p.topic_id, t.title FROM `ibf_posts` p, `ibf_topics` t WHERE p' at line 1
Run Code Online (Sandbox Code Playgroud)
如果我删除DISTINCT
关键字,那么查询工作没有问题.
我究竟做错了什么?
该方案来自Invision Power Board帖子和主题表.我想获得最新帖子的最后8个主题的标题.在最新的帖子列表中,我不希望同一主题出现多次.我想要一个独特的标题列表.
table:ibf_posts -pid -author_name -author_id -topic_id
table:ibf_topics -tid -title
tid与topic_id相同