簡體   English   中英

通過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以便它也可以從Users表中獲取用戶名?

同樣,這只是早期的實現,將來我將有更多的表需要類似的查詢,因此我需要了解其工作原理。

PS:我知道他們有很多這樣的例子,但是我很難理解它們,所以如果你們中的一個人能分解並解釋我將不勝感激。

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

嘗試這個

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM