通过JOIN查询单个查询中的多个表

时间:2014-12-11 17:21:37

标签: php mysql database codeigniter syntax

我无法安静地使用JOIN条款,即使在我准备了多个关于该主题的帖子之后。

这是我的问题: 目前我有2张桌子。

用户表:

ID | Username | Password
1  |   Micky  |   123
2  |   Mouse  |   145

问题表:

Question ID| Question_Title   | Question      | Rating | Category ID | User ID |
    1      | Meaning of Life? | Same as Title |  100   |      2      |    1    |
    2      | Foo is love?     | Same as Above |   95   |      4      |    2    |

现在我只想运行一个查询,它会在标题中找到匹配项,找出哪个用户ID对应于该问题,然后获取用户名,以及问题标题,问题和评级然后打印出来。

到目前为止,我有:

"SELECT Question_Title, Question, Rating FROM Questions WHERE Question_Title LIKE  '%$Term%'";

这样就可以从表格中找到问题标题,问题和评级,无论它在哪里找到匹配,但我如何使用JOIN以便它也会从Users表中获取用户名?

这也只是早期实现我将来会有更多需要类似查询的表格,所以我需要了解它是如何工作的。

P.S:我知道他们有很多这样的例子,但是我很难理解他们,所以如果你们中的一个善良的人能够将其分解并解释我会感激不尽。

2 个答案:

答案 0 :(得分:0)

Select a.* from a join b on a.id=b.a_id join c on c.b_id = b.id

在你的情况下是这样的:

SELECT Question_Title, Question, Rating,user.* FROM Questions join User on user_id=id WHERE Question_Title LIKE  '%$Term%'";

答案 1 :(得分:0)

试试这个

 SELECT 
    u.username
    q.Question_Title, 
    q.Question, 
    q.Rating 
    FROM Questions q
    join Users u on u.id = q.userid
    WHERE q.Question_Title LIKE  '%$Term%'";