2009-11-19 215 views
0

我张贴的问题earlier-得到它固定的,但是不是我有另外一个problem-我有4个记录它和我的SQL表只返回三个记录SQL连接查询的问题(MySQL的)

我尝试了两种类型加入这个在这里一个

SELECT items.id, items.link, items.title, items.image, lists.user, lists.dated 
    FROM lists, items 
WHERE lists.user = '506161637' 
    AND lists.item = items.id 
ORDER BY lists.dated; 

......另:

SELECT * 
FROM items 
JOIN lists ON items.id = lists.item 
WHERE lists.user = '506161637' 
LIMIT 0 , 30 

名单表列出如下,并将其与8,6,5

返回记录
id user  item dated 
--------------------------------- 
20 506161637 1  2009-11-19 
19 506161637 8  2009-11-19 
18 506161637 6  2009-11-19 
17 506161637 5  2009-11-18 
+0

是否有项目表中的ID为1的条目? – 2009-11-19 23:25:34

+0

您是否检查了物品ID为1的物品表? – 2009-11-19 23:26:30

+0

哎哟慢:) – 2009-11-19 23:27:12

回答

0

我相信只有三条记录会加入'items'表中的记录。

1

显而易见的答案是你的连接失败了第1行的连接标准。可能你的Items表没有一个条目,它的id是在lists.item中。

3

如果没有看到数据,我会假定项目表中不存在其中一个“项目”号码,因此它无法加入。在这种情况下,如果您仍想要返回“list”元素,则可以使用左连接(或右连接,具体取决于您从第一个选择的连接)。

例如:

SELECT * 
    FROM items 
LEFT JOIN lists ON items.id = lists.item 
    WHERE lists.user = '506161637' 
    LIMIT 0 , 30 

查看left joins

+0

更改“右加入”为“左加入” – 2009-11-20 02:21:31

0

对不起球员这个页面,这不是什么做与SQL可言。我将代码切入函数中,并没有更改变量名称,代码变成了数组,因此只有第一个数字实际上进入了数据库。

谢谢