0

やあみんな私はこのクエリを持っています:

SELECT Schwellwert
FROM lm_Schwellwert
WHERE (Typ = (SELECT Typ FROM lm_Artikel WHERE `Index` = (SELECT DISTINCT `Index` FROM lm_Warenkorb)))

しかし、実行すると、次のエラーが発生します。

1242-サブクエリが複数の行を返す

クエリの内容が間違っているのかわかりません。

lm_Schwellwert外観の例:

Typ     Schwellwert
Computer    78

lm_Artikel外観の例:

Index   Artikelbezeichnung  Status  Bestand     Lieferant    Typ
1           HP Elitebook        OK      19         HP         Computer     

lm_Warenkorb外観の例:

Index
11
1
4

5 に答える 5

2

条件が1つの値に対してのみ実行できる場合(x = yなど)
この場合、サブクエリ

(SELECT Typ FROM lm_Artikel WHEREインデックス= (SELECT DISTINCTインデックスFROM lm_Warenkorb))

が複数の行を返しているため、エラーが発生します。

次のようにクエリを変更してみてください

SELECT Schwellwert
FROM lm_Schwellwert
WHERE (Typ IN (SELECT Typ FROM lm_Artikel WHERE `Index` IN (SELECT DISTINCT `Index` FROM lm_Warenkorb)))

値のセットを受け入れ、それらの1つに等しいIN場合はtrueを返すため、演算子が役立ちますTyp

于 2012-11-22T08:05:33.520 に答える
1

多分inあなたを助けるでしょう:

SELECT Schwellwert
FROM lm_Schwellwert
WHERE (Typ in (SELECT Typ FROM lm_Artikel WHERE `Index` in (SELECT DISTINCT `Index` FROM lm_Warenkorb)))

minたとえば、集計関数を使用することもできます。

SELECT Schwellwert
FROM lm_Schwellwert
WHERE (Typ in (SELECT min(Typ) FROM lm_Artikel WHERE `Index` in (SELECT min(`Index`) FROM lm_Warenkorb)))
于 2012-11-22T08:05:10.283 に答える
1

これを試して

SELECT Schwellwert
FROM lm_Schwellwert
WHERE (Typ = (SELECT Typ FROM lm_Artikel 
              WHERE `Index` in (SELECT DISTINCT `Index` FROM lm_Warenkorb)))

uのインデックスには2つの値があるため

于 2012-11-22T08:05:14.117 に答える
1
SELECT DISTINCT `Index` FROM lm_Warenkorb

このサブクエリは2つの行を返します。等号を使用しているため、1つだけにする必要があります。

これを試して:

SELECT Schwellwert
FROM lm_Schwellwert
WHERE (Typ = (SELECT  Typ FROM lm_Artikel WHERE `Index` in (SELECT DISTINCT `Index` FROM lm_Warenkorb)) limit 1)
于 2012-11-22T08:05:30.930 に答える
1

このクエリを試してください

Select 
    lm_Schwellwert.Schwellwert
From lm_Schwellwert
Left join lm_Schwellwert as r 
    on r.Typ = (SELECT Typ FROM lm_Artikel WHERE `Index` = (SELECT DISTINCT `Index` FROM lm_Warenkorb))
Where r.id is not null  
group by lm_Schwellwert.Typ
于 2012-11-22T08:11:26.077 に答える