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


Querying more than 1 table in a single query via JOIN

我不能安静地使用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,以便它也从用户表中获取用户名?

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

PS:我知道有很多这样的例子,但我很难理解它们,所以如果你们中的一个善良的灵魂可以分解它并解释,我将不胜感激。

试试这个

 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%'";
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%'";