1

私は2つのテーブルを持っています:

1 つのテーブルには異なるラップトップの仕様が含まれています

laptop:
|partNumber|picture|laptopName|laptopProcessor|visibility|
..........................................................
|AB00001   |pic1   |lenovo..  |intel core I5  |1         |
|AB00002   |pic2   |samsung   |AMD semprom 3.8|1         |

もう 1 つのテーブルは在庫テーブルです。複数のショップがあり、すべてのショップで特定のラップトップの価格が異なります。

inventory:
|partNumber|shopName|price|qty|
...............................
|AB00001   |shop1   |554  |2  |
|AB00002   |shop1   |356  |4  |
|AB00002   |shop3   |400  |1  |
|AB00001   |shop4   |625  |5  |
|AB00002   |shop4   |345  |3  |

最高の価格のラップトップに関するリストを作成するクエリを書きたいので、次のように書きました。

SELECT laptop.partNumber, laptop.picture, laptop.laptopName, laptop.laptopProcessor,
       inventory.MIN(price)
FROM laptop INNER JOIN inventory ON inventory.partNumber=laptop.partNumber
WHERE visibility="1"

したがって、基本的にすべてのラップトップを最高の価格で表示したいのですが、価格クエリなしで機能していますが、この MIN() 関数をクエリに追加することはできません。私を助けてください。

4

3 に答える 3

1

Group BY がありません

SELECT laptop.partNumber, laptop.picture, laptop.laptopName, laptop.laptopProcessor,
       inventory.MIN(inventory.price)
FROM laptop INNER JOIN inventory ON inventory.partNumber=laptop.partNumber
WHERE visibility="1"
GROUP BY laptop.partNumber, laptop.picture, laptop.laptopName, laptop.laptopProcessor
于 2013-10-24T17:07:27.377 に答える
1

これを試して:

SELECT laptop.partNumber,
  laptop.picture,
  laptop.laptopName,
  laptop.laptopProcessor,
  MIN(inventory.price)
FROM laptop
INNER JOIN inventory ON inventory.partNumber = laptop.partNumber
WHERE visibility = "1"
GROUP BY laptop.partNumber,
  laptop.picture,
  laptop.laptopName,
  laptop.laptopProcessor
于 2013-10-24T17:06:11.850 に答える
1

構文はMIN(column name)であるため、 である必要がありますMIN(inventory.price)。ただし、も追加する必要がありますGROUP BY。そうしないと、テーブル全体に対して 1 つの結果しか得られません。

次に、ラップトップでグループ化したいので、 を追加しGROUP BY inventory.partNumberます。テーブルの主キーpartNumberない場合は、他の列も追加する必要があります。laptop

于 2013-10-24T17:06:15.373 に答える