2017-07-19 84 views
-1

我有兩個簡單的表,用下面的生成形式:MySQL查詢沒有得到基於查詢正確的記錄(JOIN)

表1

id - name 

表2

id - name - post_id (table1.id Fkey) 

我想要的是,從TABLE 1得到的數據,其中TABLE 1id匹配TABLE 2post_id

這很容易,但我有37條記錄,我只得到13條記錄。

查詢:

SELECT posts.id FROM posts INNER JOIN favorites ON posts.id = favorites.post_id 

當執行上述查詢,其結果是:

由關係式(ID = POST_ID)共享某些記錄,其餘的記錄是隨機的post_id值作爲NULL

+1

37記錄在哪張表,帖子?只有13條記錄可能是正確的,因爲並非所有的帖子都可能在兩個ID匹配的收藏夾中。這有意義嗎?你必須檢查兩者之間的ID數據,看看有什麼......除非你正在尋找一個'LEFT JOIN',或許? –

+0

'從表1 T1,表2 T2選擇T1。*,其中T1.id = T2.post_id' - 試試這個。我想它會返回你想要的。 – Dalton

+0

表1,'posts'表 – Jaeger

回答

1

嘗試它,並顯示結果

SELECT posts.id FROM posts LEFT JOIN favorites ON posts.id = favorites.post_id