1

2 つのテーブルがあります。1 つはライセンスと呼ばれ、もう 1 つはシステムと呼ばれます。ライセンス テーブルには、システム ID とライセンス タイプ (フルまたはトライアル) が保持されるようになりました。また、システム テーブルには、システムの mac_address が保持されます。

現在、1 つのシステムに複数のトライアル ライセンスと 1 つのフル ライセンスを含めることができます。ここで、完全なバージョンがまだ生成されていないシステムを、 mac_address とともにグループ化して見つけたいと考えています。

ちょっとした提案で十分です。

4

3 に答える 3

1
 select 
    s.*
from
    systems as s 
where
    s.system_id not in 
    (select l.system_id from licenses as l where l.licence_type='full')
于 2012-07-20T09:44:50.917 に答える
0

したがって、「完全な」ライセンスがリストされていないすべてのシステムを見つける必要があります。純粋な SQL では、LEFT JOIN を使用してこれを実現できます。何かのようなもの

SELECT DISTINCT s.system_id,s.mac_address
FROM systems s
LEFT JOIN licences l ON s.system_id=l.system_id AND l.licence_type = 'full'
WHERE l.licence_id IS NULL
于 2012-07-20T09:40:46.003 に答える
0

私はあなたの質問をよく理解していませんでしたが、列の 1 つを一意にすることはできませんか?

于 2012-07-20T09:52:52.553 に答える