18

助けが必要SELECTです。

できるフィールドを取得し、そのNULL中に外部キーが格納されています。

SELECT * FROM beerImage WHERE beerBRewID = brewID AND beerBrandID = beerID <--- this can be NULL

したがって、NULL何も起こらない場合。

使用できるかどうかを確認するにbeerIDはどうすればよいですか?NOT NULL"beerBrandID = beerID"

4

5 に答える 5

17

おそらく次のようなものが必要です。

最初の例:

SELECT * FROM beerImage WHERE beerBRewID = brewID AND (beerID IS NULL OR beerBrandID = beerID)

2 番目の例:

SELECT * FROM beerImage WHERE beerBRewID = brewID AND beerID IS NOT NULL AND beerBrandID = beerID

最初の例では、beerBrandID が beerID と等しいビール (両方) とともに、beerID が null であるレコードを表示できます。

2 つ目は、beerBrandID (NULL の beerID を除く) に対応するビールを正確に返します。

于 2012-08-15T14:52:15.207 に答える
2

一致するものがないレコードを含める場合は、外部結合が必要です

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 
于 2012-08-15T15:29:09.043 に答える
1

null / not null をチェックするには、IS NULL / IS NOT NULL を使用します。

AND beerID IS NOT NULL
于 2012-08-15T14:52:06.520 に答える
0

「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

于 2012-08-15T14:53:30.903 に答える