我有items
和lists
表,分别存储项目和列表。我正在尝试检索由url
标识的特定列表中的所有项目。 url
是lists
中的唯一键。
SELECT
items.item_name,
items.position,
items.checked,
lists.list_name
FROM
items
JOIN lists
WHERE
items.list_id=lists.list_id AND lists.url=?
ORDER BY items.position
这可行,但我想区分一种情况
lists.url
在lists
中不存在,并且它存在于
lists
中,但该列表不包含任何项目。当前,此查询在这两种情况下都返回一个空集。在一个查询中执行此操作的好方法是什么?
最佳答案
选择lists
和LEFT JOIN
items
。
SELECT items.item_name,
items.position,
items.checked,
lists.list_name
FROM lists
LEFT JOIN items ON items.list_id=lists.list_id
WHERE lists.url=?
ORDER BY items.position
如果列表存在但没有项目,您将获得单行。项目字段将为
NULL
。关于mysql - 如果另一个表中不存在MySQL,则返回不同的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18734241/