sql join查询问题(mysql)

时间:2009-11-19 23:21:33

标签: sql mysql

我之前发过一个问题 - 修好但不是我有另一个问题 - 我有一个包含4条记录的表格,我的sql只返回三条记录

我在这里尝试了两种类型的连接

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

下面列出了list表,它返回了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

4 个答案:

答案 0 :(得分:3)

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

示例:

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

left joins

上查看此页面

答案 1 :(得分:1)

显而易见的答案是,您的联接未通过第1行的连接条件。可能您的Items表没有条目,其id在lists.item中。

答案 2 :(得分:0)

我相信只有三个记录与'items'表中的记录一起加入。

答案 3 :(得分:0)

对不起,伙计们,这根本与SQL无关。我将代码切换成函数并且没有更改变量名称,代码变成了数组,因此只有第一个数字实际进入数据库。

由于