【问题标题】:Join five mysql tables for search加入五个mysql表进行搜索
【发布时间】:2014-12-26 20:41:21
【问题描述】:

请检查图片:

文件表:

会议桌:

日志表:

project_thesis 表

研究表

我正在制作一个文件上传网站,学生可以在其中上传期刊/研究/会议论文。文件表包含文件名。我想将这些表连接在一起以用于搜索功能,学生可以根据标题、关键字或作者姓名或摘要搜索文档。

您能告诉我如何加入这些表格并使用 LIKE 进行搜索吗? File_id 在所有其他表中是唯一的外键。标题、关键词、摘要在所有表格中。

【问题讨论】:

  • 嗨,李。我已经编辑了您的问题,以便读者可以看到图像,但是将来这些图像作为文本会更好 - 可以非常轻松地从 phpMyAdmin 导出表格格式。
  • 另外,您可能不熟悉 Stack Overflow 的工作方式。我们通常鼓励人们在他们的问题中添加尝试,原因有两个。首先,它向读者展示了问题的预期方向,因此答案不会偏离提问者不打算的切线。其次,当一个人试图回答一个他们不知道如何解决的问题时,他们通常会学到一些东西。在这种情况下,此站点和 MySQL 手册中有许多 SQL 连接示例。你愿意试一试吗?
  • 非常感谢您的编辑和回复。我很感激 。我是新手。我在 youtube 上看了几个视频,但没有一个有效。我会努力学习更多,我会在这里更新。亲切的问候。李
  • 首先连接两个表,然后在 SQL 窗口中运行 phpMyAdmin 中的代码。我喜欢在文本编辑器中编辑它,然后将其粘贴进去,这样我就不会丢失它。然后当它工作时,添加一个新表,直到添加所有表。

标签: php search mysqli sql-like jointable


【解决方案1】:

您可以通过以下方式根据file_id加入您的表格。您也可以通过id进行搜索。只需将您的搜索id放在Your_search_file_id位置即可。

select *from conference 
inner join  journal on conference.file_id =journal.file_id
inner join  project_thesis on project_thesis.file_id =journal.file_id
inner join  research on research.file_id =journal.file_id
where journal.file_id = Your_search_file_id;

【讨论】:

  • 根据我在问题下的评论,我们经常尝试鼓励回答者等到对问题做出一些努力。在没有尝试过的地方提供答案会立即有所帮助,但等待 OP 试一试可能会从长远来看帮助他们成为更好的程序员。
  • SELECT * FROM (file AS file INNER JOIN project_thesis AS project_thesis ON (file.file_id = project_thesis.file_id)) WHERE (file.file_id = project_thesis.file_id)
  • 这加入了项目论文和基于文件的文件。但我也需要所有的期刊、研究、研究、会议。我该怎么做?
  • 当您将我发送给您的查询时,您将在一个地方获得所有段,因为您使用了代码内连接。
  • #1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法,以便在第 1 行的“来自会议内部加入日志 on Conference.file_id =journal.file_id in”附近使用
【解决方案2】:

在了解了一下之后,我了解到这些表格的格式不正确。所以这个问题没有正确答案

【讨论】:

    猜你喜欢
    • 2014-02-10
    • 2014-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多