0

次の sql ステートメントを作成しました。テスト テーブルには 4 つのレコードがあり、coa_body テーブルにも 4 つのレコードがあります。このクエリは次のとおりです。

SELECT `name`, `compedia`, `specification`
  FROM    (`tests` t, `coa_body` cb)
  JOIN
      `request_details` rd
    ON `t`.`id` = `rd`.`test_id`
 WHERE `rd`.`request_id` = 'NDQA201303001' AND cb.labref = 'NDQA201303001';

戻り値:

1.ネームコンペディア仕様

Assay                     Alphy     poxy
pH(Acidity/Alkalinity)    Alphy     poxy
Sterility                 Alphy     poxy
Bacterial Endotoxin Test  Alphy     poxy
Assay                     poxy      alphy
pH(Acidity/Alkalinity)    poxy      alphy
Sterility                 poxy      alphy
Bacterial Endotoxin Test  poxy      alphy
Assay                     alphy1    poxy1
pH(Acidity/Alkalinity)    alphy1    poxy1
Sterility                 alphy1    poxy1
Bacterial Endotoxin Test  alphy1    poxy1
Assay                     poxy1     alphy1
pH(Acidity/Alkalinity)    poxy1     alphy1
Sterility                 poxy1     alphy1
Bacterial Endotoxin Test  poxy1     alphy1

2.coa_body テーブルは次のとおりです: id labref compedia 仕様

1   NDQA201303001   Alphy   poxy
2   NDQA201303001   poxy    alphy
3   NDQA201303001   alphy1  poxy1
4   NDQA201303001   poxy1   alphy1

3. このように、coa_body テーブルとまったく同じ 4 つのレコードだけが必要です。

   name                     compedia   specification

   Assay                     Alphy  poxy
   pH(Acidity/Alkalinity)    poxy   alphy
   Sterility                 alphy1 poxy1
   Bacterial Endotoxin Test  poxy1  alphy1

4.クエリの最後にGROUP BY t.nameステートメントを追加すると、返されます

 name                   compedia  specification     

Assay                       Alphy   poxy
Bacterial Endotoxin Test    Alphy   poxy
pH(Acidity/Alkalinity)      Alphy   poxy
Sterility                   Alphy   poxy

これは欲しくない、欲しい結果は3番の結果

4

1 に答える 1

-1

クエリを書き直す

SELECT `name`, `compedia`, `specification`
  FROM    (`tests` t, `coa_body` cb)
  JOIN
      `request_details` rd
    ON `t`.`id` = `rd`.`test_id`
 WHERE `rd`.`request_id` = 'NDQA201303001' AND cb.labref = 'NDQA201303001' GROUP BY name;
于 2013-05-18T13:10:25.383 に答える