1

私はmySQLでこのクエリに取り組んでいます-実行中のサーバーでPEARとMDB2を使用するWebサイトで処理されているようです(理由はわかりません...自分でやらないでください)。私のローカル テスト システムでは、常に MDB2 エラーが発生します。PHPmyadmin もこのクエリを実行しません。このクエリには 1 つだけではなく 4 つの副選択があるため、副選択が必要です。

SELECT * FROM table1 
WHERE table1.orderID 
    IN 
        (
        SELECT * 
            FROM table1 
        LEFT JOIN table2
            ON (table1.customID = table2.customID) 
        WHERE table1.active=1
        )

そのように単純化できます(機能します):

SELECT * FROM table1 
WHERE table1.orderID 
    IN (1,2,3)

Subselect も機能します。

SELECT * 
    FROM table1 
LEFT JOIN table2
    ON (table1.customID = table2.customID) 
WHERE table1.active=1

助けてくれてありがとう!

4

1 に答える 1

2

内部クエリは、次のように 1 つの列を返す必要があります。

SELECT  *
FROM    table1 
WHERE   table1.orderID IN 
        (
        SELECT  orderId

--              ^^ here

        FROM    table1 
        LEFT JOIN
                table2
        ON      table1.customID = table2.customID
        WHERE   table1.active=1
        )
于 2012-05-24T12:00:43.387 に答える