Mysql 如何将NOT子句添加到SQL查询中
我想在此SQL查询中添加NOT子句:Mysql 如何将NOT子句添加到SQL查询中,mysql,sql,Mysql,Sql,我想在此SQL查询中添加NOT子句: Select members.Member_Id, members.Title, members.FirstName, members.LastName, members.Po_Box, members.Street, members.City, members.Del, members.Mobile, members.eMail, members.
Select
members.Member_Id,
members.Title,
members.FirstName,
members.LastName,
members.Po_Box,
members.Street,
members.City,
members.Del,
members.Mobile,
members.eMail,
members.WFTD,
ship_info.Renewal_Date
From
members
Left Join
ship_info on (members.Member_Id = ship_info.Member_Id)
Order By
ship_info.Renewal_Date
NOT条款是这样的:
Where Member_Id Not Between 2000 And 3000;
我试着把这一行放在不同的地方,但每次都会出错,而且因为Wamp用法语报告错误,所以我觉得它没有用
是的,也有类似的问题,但它们让我更加困惑,因为我对它们的理解不够,无法相应地修改我的脚本。我对数组和复杂代码了解不多
我从数据库中导出数据用于邮件合并,Id在2000年代的成员是被删除的成员,其Id从原始Id移动到更高的数字,因为我不喜欢永久删除人,以防他们以后改变主意
谢谢。由于您使用的是联接,并且联接的两个表中都有成员id字段,因此必须指定需要where语句的表。尝试:
SELECT members.Member_Id
,members.Title
,members.FirstName
,members.LastName
,members.Po_Box
,members.Street
,members.City
,members.Del
,members.Mobile
,members.eMail
,members.WFTD
,ship_info.Renewal_Date
FROM members
LEFT JOIN ship_info ON (members.Member_Id = ship_info.Member_Id)
WHERE members.Member_Id NOT BETWEEN 2000
AND 3000
ORDER BY ship_info.Renewal_Date
由于您使用的是JOIN,并且member_id字段位于JOIN的两个表中,因此必须指定需要where语句的表。尝试:
SELECT members.Member_Id
,members.Title
,members.FirstName
,members.LastName
,members.Po_Box
,members.Street
,members.City
,members.Del
,members.Mobile
,members.eMail
,members.WFTD
,ship_info.Renewal_Date
FROM members
LEFT JOIN ship_info ON (members.Member_Id = ship_info.Member_Id)
WHERE members.Member_Id NOT BETWEEN 2000
AND 3000
ORDER BY ship_info.Renewal_Date
您可以这样尝试:
Select members.Member_Id
,members.Title
,members.FirstName
,members.LastName
,members.Po_Box
,members.Street
,members.City
,members.Del
,members.Mobile
,members.eMail
,members.WFTD
,ship_info.Renewal_Date
From members
LEFT JOIN ship_info ON (members.Member_Id=ship_info.Member_Id)
WHERE (members.Member_ID < 2000 OR members.member_ID > 3000)
ORDER BY ship_info.Renewal_Date
您可以这样尝试:
Select members.Member_Id
,members.Title
,members.FirstName
,members.LastName
,members.Po_Box
,members.Street
,members.City
,members.Del
,members.Mobile
,members.eMail
,members.WFTD
,ship_info.Renewal_Date
From members
LEFT JOIN ship_info ON (members.Member_Id=ship_info.Member_Id)
WHERE (members.Member_ID < 2000 OR members.member_ID > 3000)
ORDER BY ship_info.Renewal_Date
我认为下面应该可以,如果不能,请指定您得到的错误,如果您使用这个表名作为别名,您只需要更好地为表名成员添加前缀
SELECT members.Member_Id
,members.Title
,members.FirstName
,members.LastName
,members.Po_Box
,members.Street
,members.City
,members.Del
,members.Mobile
,members.eMail
,members.WFTD
,ship_info.Renewal_Date
FROM members
LEFT JOIN ship_info ON (members.Member_Id = ship_info.Member_Id)
WHERE members.Member_Id NOT BETWEEN 2000
AND 3000
ORDER BY ship_info.Renewal_Date
我认为下面应该可以,如果不能,请指定您得到的错误,如果您使用这个表名作为别名,您只需要更好地为表名成员添加前缀
SELECT members.Member_Id
,members.Title
,members.FirstName
,members.LastName
,members.Po_Box
,members.Street
,members.City
,members.Del
,members.Mobile
,members.eMail
,members.WFTD
,ship_info.Renewal_Date
FROM members
LEFT JOIN ship_info ON (members.Member_Id = ship_info.Member_Id)
WHERE members.Member_Id NOT BETWEEN 2000
AND 3000
ORDER BY ship_info.Renewal_Date
根据数据库管理基础知识,以下是适当的语法:
Select members.Member_Id
,members.Title
,members.FirstName
,members.LastName
,members.Po_Box
,members.Street
,members.City
,members.Del
,members.Mobile
,members.eMail
,members.WFTD
,ship_info.Renewal_Date
From members
LEFT JOIN ship_info ON (members.Member_Id=ship_info.Member_Id)
WHERE NOT members.Member_Id BETWEEN 2000 AND 3000
ORDER BY ship_info.Renewal_Date ;
在前面提到的书中,它说
可以在FROM或WHERE中指定JOIN语句
子句,但建议您在FROM子句中指定它们
关于条款优先顺序,以下是正确的顺序:
SELECT -- "what" we want
FROM -- "where" to look for it
JOIN
WHERE -- condition
GROUP BY
HAVING
ORDER BY -- sorting order
根据数据库管理基础知识,以下是适当的语法:
Select members.Member_Id
,members.Title
,members.FirstName
,members.LastName
,members.Po_Box
,members.Street
,members.City
,members.Del
,members.Mobile
,members.eMail
,members.WFTD
,ship_info.Renewal_Date
From members
LEFT JOIN ship_info ON (members.Member_Id=ship_info.Member_Id)
WHERE NOT members.Member_Id BETWEEN 2000 AND 3000
ORDER BY ship_info.Renewal_Date ;
在前面提到的书中,它说
可以在FROM或WHERE中指定JOIN语句
子句,但建议您在FROM子句中指定它们
关于条款优先顺序,以下是正确的顺序:
SELECT -- "what" we want
FROM -- "where" to look for it
JOIN
WHERE -- condition
GROUP BY
HAVING
ORDER BY -- sorting order
查询中的两个表中存在您的Member\u Id列。您需要指定表名。您需要使用表名作为Member_id的前缀,因为它是模糊的。如果您指定得到的任何错误,则会更好,否则where子句会出现一个错误,您必须指定表别名,因为Member_id存在于两个表中,而Member_id列存在于查询的两个表中。您需要指定表名。您需要在Member_id前面加上表名,因为它是模糊的。如果您指定得到的任何错误会更好,否则where子句会出现一个错误,您必须指定表别名,因为Member_id存在于两个表中,所以