Sql Join语句,但只需要根据表列为空的位置获取数据
我有这个查询语句,只想获取某列为空的记录(Sql Join语句,但只需要根据表列为空的位置获取数据,sql,mysql,Sql,Mysql,我有这个查询语句,只想获取某列为空的记录(志愿者\u 2009.vention\u id) 表格是2009年志愿者,我想看看是否是空的:场馆id 以下是当前查询: SELECT volunteers_2009.id, volunteers_2009.comments, volunteers_2009.choice1, volunteers_2009.choice2, volunteers_2009.choice3, volunteers_2009.lname, volunteer
志愿者\u 2009.vention\u id
)
表格是2009年志愿者,我想看看是否是空的:场馆id
以下是当前查询:
SELECT volunteers_2009.id, volunteers_2009.comments,
volunteers_2009.choice1, volunteers_2009.choice2, volunteers_2009.choice3,
volunteers_2009.lname, volunteers_2009.fname, volunteers_2009.venue_id,
venues.venue_name
FROM volunteers_2009 AS volunteers_2009
LEFT OUTER JOIN venues ON (volunteers_2009.venue_id = venues.id)
ORDER by $order $sort
我正在尝试这样做:
SELECT volunteers_2009.id, volunteers_2009.comments,
volunteers_2009.choice1, volunteers_2009.choice2, volunteers_2009.choice3,
volunteers_2009.lname, volunteers_2009.fname, volunteers_2009.venue_id,
venues.venue_name
FROM volunteers_2009 AS volunteers_2009
LEFT OUTER JOIN venues ON (volunteers_2009.venue_id = venues.id)
ORDER by $order $sort
WHERE volunteers_2009.venue_id == ''
我如何只列出表(
志愿者2009
)中有空列(场馆id
)的记录?如果场馆id
字段可以包含空值,则可以使用is
运算符进行比较,如下所示:
WHERE volunteers_2009.venue_id is null
空的意思是空的吗?如果
场馆id
字段可以包含空值,则可以使用is
运算符进行比较,如下所示:
WHERE volunteers_2009.venue_id is null
WHERE子句在第二次查询中出现问题。它必须放在ORDERBY条款之前 此外,我不认为您有任何场馆id为空。也许您真正想要的是:
SELECT volunteers_2009.id, volunteers_2009.comments,
volunteers_2009.choice1, volunteers_2009.choice2, volunteers_2009.choice3,
volunteers_2009.lname, volunteers_2009.fname, volunteers_2009.venue_id,
venues.venue_name
FROM volunteers_2009
LEFT JOIN venues ON venue_id = venues.id
WHERE venues.id IS NULL
ORDER BY $order $sort
这将只带回与任何场馆都不匹配的2009年志愿者记录
或者这个:
SELECT volunteers_2009.id, volunteers_2009.comments,
volunteers_2009.choice1, volunteers_2009.choice2, volunteers_2009.choice3,
volunteers_2009.lname, volunteers_2009.fname, volunteers_2009.venue_id,
venues.venue_name
FROM venues
LEFT JOIN volunteers_2009 ON volunteers_2009.venue_id = venues.id
WHERE volunteers_2009.venue_id IS NULL
ORDER BY $order $sort
查找没有志愿者的场馆。在您的第二次查询中,WHERE子句出现问题。它必须放在ORDERBY条款之前 此外,我不认为您有任何场馆id为空。也许您真正想要的是:
SELECT volunteers_2009.id, volunteers_2009.comments,
volunteers_2009.choice1, volunteers_2009.choice2, volunteers_2009.choice3,
volunteers_2009.lname, volunteers_2009.fname, volunteers_2009.venue_id,
venues.venue_name
FROM volunteers_2009
LEFT JOIN venues ON venue_id = venues.id
WHERE venues.id IS NULL
ORDER BY $order $sort
这将只带回与任何场馆都不匹配的2009年志愿者记录
或者这个:
SELECT volunteers_2009.id, volunteers_2009.comments,
volunteers_2009.choice1, volunteers_2009.choice2, volunteers_2009.choice3,
volunteers_2009.lname, volunteers_2009.fname, volunteers_2009.venue_id,
venues.venue_name
FROM venues
LEFT JOIN volunteers_2009 ON volunteers_2009.venue_id = venues.id
WHERE volunteers_2009.venue_id IS NULL
ORDER BY $order $sort
查找没有志愿者的场地。当你说空时,你是指空字符串还是空字符串?它们是两种不同的东西如果你真的在一个空字符串上查询,那么你发布的查询应该可以工作。您能否提供更多有关当前查询不起作用的详细信息。假设viouses.id是主键,那么当志愿者\u 2009.viouse\u id为空时,您将无法加入该查询。您确定不想选择场馆名称为空的记录吗?即志愿者没有匹配的场馆?当您说空时,是指空字符串还是空?它们是两种不同的东西如果你真的在一个空字符串上查询,那么你发布的查询应该可以工作。您能否提供更多有关当前查询不起作用的详细信息。假设viouses.id是主键,那么当志愿者\u 2009.viouse\u id为空时,您将无法加入该查询。您确定不想选择Vincements.Vincement\u name为空的记录,即志愿者没有匹配的地点吗?是,空,但当我在CocoaMySQL中显示表时它不显示空是,空,但当我在CocoaMySQL中显示表时它不显示空