我需要我的帮助SELECT
。只能在where子句IF NOT NULL
我有一个字段,可NULL
,并在其中存储有外键。
SELECT * FROM beerImage WHERE beerBRewID = brewID AND beerBrandID = beerID <--- this can be NULL
因此,如果它是NULL
什么也没有发生。
如何检查beerID
是否为NOT NULL
因此我可以使用"beerBrandID = beerID"
?
我需要我的帮助SELECT
。只能在where子句IF NOT NULL
我有一个字段,可NULL
,并在其中存储有外键。
SELECT * FROM beerImage WHERE beerBRewID = brewID AND beerBrandID = beerID <--- this can be NULL
因此,如果它是NULL
什么也没有发生。
如何检查beerID
是否为NOT NULL
因此我可以使用"beerBrandID = beerID"
?
如果要包括记录那里没有比赛,你需要一个外部联接
SELECT beer.id AS beerID,
beer.barrelID AS barrelID,
beer.imageID AS imageID,
beer.title AS title,
beer.map AS map,
beer.longitude AS longitude,
beer.latitude AS latitude,
brand.name AS brandName,
brew.type AS brewType,
image.name AS imageName,
variation.name AS variationName
FROM brand, brew, image, beer
LEFT OUTER JOIN variation ON variation.ID = beer.VariationID
WHERE beer.id = %s
AND md5(beer.memberID) = %s
AND beer.review = 1
AND brand.ID = beer.brandID
AND brew.ID = beer.brewID
AND image.ID = beer.imageID
这导致 未知的列'啤酒.VariationID'在'条款' – user1600867 2012-08-15 15:41:33
尝试移动啤酒到 – FJT 2012-08-15 15:44:16
年底这是它,感谢LOT !!!! – user1600867 2012-08-15 15:55:30
要检查空/不为空,使用IS NULL/IS NOT NULL
AND beerID IS NOT NULL
WHERE beerBRewID = brewID AND beerBrandID = beerID和beerID IS NOT NULL 这样吗? – user1600867 2012-08-15 14:53:37
你可能需要的东西是这样的:
第一个例子:
SELECT * FROM beerImage WHERE beerBRewID = brewID AND (beerID IS NULL OR beerBrandID = beerID)
第二个例子:
SELECT * FROM beerImage WHERE beerBRewID = brewID AND beerID IS NOT NULL AND beerBrandID = beerID
第一个示例将允许您显示啤酒ID为null的记录以及beerBrandID等于beerID(两者)的啤酒。
第二个将只返回其对应于beerBrandID啤酒(不包括NULL beerIDs)。
如果beerBrandId = beerId,beerId肯定不为null。 – raina77ow 2012-08-15 14:54:29
然后使用第二个示例。 – Rolice 2012-08-15 14:57:01
这是我试过的,但它将字段设置为1并选择错误的变体。 WHERE beer.id =%s和MD5(beer.memberID)=%s和beer.review = 1 AND brand.ID =啤酒。brandID AND brew.ID = beer.brewID AND image.ID = beer.imageID AND(beer.variationID IS NULL OR variation.ID = beer.variationID) – user1600867 2012-08-15 15:12:39
您可以使用 “IS NULL” 或 “IS NOT NULL” MySQL的比较函数。
了解更多关于此这里: http://dev.mysql.com/doc/refman/5.0/en/working-with-null.html http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_is-null
THISST我的SELECT: SELECT beer.id AS beerID,beer.barrelID AS barrelID,beer.imageID AS imageID,beer.title AS title,beer.'map' AS map,beer.longitude AS longitude,beer.latitude AS纬度, brand.name AS brandName,brew.type AS brewType,image.name AS imageName,variation.name AS variationName从啤酒,品牌,酿造,图像,变化WHERE beer.id =%s AND md5(beer.memberID)=%s AND beer.review = 1 AND brand.ID = beer.brandID AND brew.ID = beer.brewID AND image.ID = beer.imageID AND variation.ID = beer.variationID beer.variationID这可以是NULL,如果它的NULL什么都不会b e selected – user1600867 2012-08-15 15:03:25
+1,因为你有一个名为beerImage – goat 2012-08-15 14:55:43
表,你能否澄清你的问题一点?我看到它的方式,在'beerImage'表中有一个字段'beerId',它被用作外键,但是可以为空,对吗?你是否需要一次收集两张表格的数据? – raina77ow 2012-08-15 14:56:27
使它成为啤酒图像表名称的+2,你有我的投票。 – Michael 2012-08-15 15:07:38