いくつかのクエリを組み合わせようとしていますが、うまくいきません。誰かが私を正しい方向に向けることができるかどうか疑問に思っていました。
声明は次のとおりです。
SELECT
I.id,
I.custname,
I.custemail,
I.sku,
DATE_FORMAT(FROM_UNIXTIME(I.ts), '%l:%i:%s %p, %c/%e/%Y') AS ts
FROM images I
WHERE I.stat = 0
SELECT
COUNT(*) AS total1
FROM images
WHERE stat = 1 AND sku = ?
SELECT
COUNT(*) AS total2
FROM images
WHERE stat = 1
AND sku IN (SELECT subsku FROM combo WHERE sku = ?)
現在、3 つの個別のクエリを使用しており、コードを使用して 2 つの合計を加算して表示しています。しかし、合計の合計でソートできるようにする必要があるため、そのすべてのデータを 1 つのステートメントにまとめたいと思います。次のようなものです。
SELECT
I.id,
I.custname,
I.custemail,
I.sku,
DATE_FORMAT(FROM_UNIXTIME(I.ts), '%l:%i:%s %p, %c/%e/%Y') AS ts,
SUM(total1+total2)
FROM images I
WHERE I.stat = 0
しかし、私はそれを行う方法がわかりません。以下のコードを試しましたが、失敗しました。
SELECT
I.id,
I.custname,
I.custemail,
I.sku,
DATE_FORMAT(FROM_UNIXTIME(I.ts),'%l:%i:%s %p, %c/%e/%Y') AS ts,
(
SELECT COUNT(*) AS total1 FROM images WHERE stat = 1 AND (
sku IN (
SELECT subsku FROM combo WHERE sku = I.sku
) OR sku = I.sku)
) AS skuct
FROM images I
WHERE stat = 0
どんな助けでも大歓迎です。どうもありがとう!
アップデート
まず、支援を提供してくれたすべての人に感謝します。私はクエリに取り組んでおり、近づいていると思いますが、「サブクエリが複数の行を返します」というエラーが発生しています:
SELECT
I.id,
I.custname,
I.custemail,
I.sku,
DATE_FORMAT(FROM_UNIXTIME(I.ts), '%l:%i:%s %p, %c/%e/%Y') AS ts,
(
SELECT COUNT(*)
FROM images
WHERE stat = 1
AND sku = I.sku
OR sku IN(
SELECT subsku FROM combo WHERE sku = I.sku
)
GROUP BY sku
) AS total
FROM images I
WHERE stat = 0
問題は、サブクエリSELECT subsku FROM combo WHERE...
が結果セット (0+ 行) とスカラーを返すことです。その部分を理解できれば、うまくいくと思います。