2013-05-28 37 views
0

頂行我有兩個表:連接兩個表,而只需要從外部表

表:series

'id', 'series','thumbnail' 

表:videos

'name','ref','sID' 

SID是的id的外鍵在表series中。我想要表series的前5行,第一個ref來自videos

然而,我的SQL:

SELECT `series` , `thumbnail` , `ref` 
FROM `series` 
LEFT JOIN `videos` ON `videos`.`sID` = `series`.`id` 
ORDER BY `series`.`id` DESC 
LIMIT 0 , 5 

我最終從series第一頂行,但重複5次,用不同的裁判:

Youve Already Got It, image.jpg, fe4 
Youve Already Got It, image.jpg, 79c57 
Youve Already Got It, image.jpg, bd2 
Youve Already Got It, image.jpg, ff15c 
Youve Already Got It, image.jpg, 2ce 
+0

什麼是 「第一個ref」? –

回答

0

試一下:

SELECT 
`series`, 
`thumbnail`, 
(SELECT `ref` FROM `videos` AS `v` WHERE `v`.`sID` = `s`.`id` LIMIT 0,1) AS `ref` 
FROM `series` AS `s` 
ORDER BY `series`.`id` DESC 
LIMIT 0,5 
+0

不得不將ORDER BY修改爲's'.'id',但它有效。謝謝! – Chud37

+0

很高興我可以幫助:) –

0

假設你知道你在做什麼索引;)

SELECT *, (SELECT ref FROM videos WHERE sID = id LIMIT 1) as first_ref 
FROM series 
ORDER BY id 
LIMIT 5; 
+0

這不起作用,它將相同的ref放入每一行 – Chud37

0

你可以嘗試這樣也

SELECT `series` , `thumbnail` , `ref` 
FROM `series` 
INNER JOIN `videos` ON `videos`.`sID` = `series`.`id` 
GROUP BY `series`.`id` DESC 
LIMIT 0 , 5