2016-08-09 23 views
1

私はさまざまなバージョンのWindows(および他のOS)がどれであるかを確認する要求を送信するシステムを見つけるためにデータベース(SQL)に問い合わせています。私はいくつかの既知のフレーバーをチェックしてからキャッチオールを取得しようとしますが、キャッチオールキャッチは個々の条件よりも少なく、なぜうまくいかないのですか。SQLの困惑スーパーセット

このPHP/SQLのために:

v61: 1907 
v62: 2181 
nWin: 4036 

4036は明らかに未満2181 + 1907である:

$monthSelect = "SELECT DISTINCT(host) FROM $table WHERE date > ('$lastMonth') "; 
$v61 = $db->query($monthSelect."AND sys LIKE '%win32_v6.1%'")->num_rows; 
echo "v61: $v61<br>\n"; 
$v62 = $db->query($monthSelect."AND sys LIKE '%win32_v6.2%'")->num_rows; 
echo "v62: $v62<br>\n"; 
$nWin = $db->query($monthSelect."AND sys LIKE '%win32_v%'")->num_rows; 
echo "nWin: $nWin<br>\n"; 

私は次の出力を取得します。しかし、$nWinは、$v62$v61およびその他のバージョンのスーパーセットを提供してはいけませんか?

は、私はあなたがSELECT DISTINCTをやっているこれらの答え

答えて

3

を取得することができる方法についての損失でね。

最初の2つのクエリの両方に重複するホストがある場合、それらは3番目のクエリで1回だけカウントされます。したがって、3番目のクエリの合計は、最初の2つのクエリの合計よりも小さくなります。

+0

Ah!その背後に複数のOSがある1つのIPアドレス(おそらくプロキシサーバー)。良い点。ありがとう – Jon

関連する問題