2012-05-24 6 views
1

Я работаю над этим запросом на mySQL - он, кажется, обрабатывается на веб-сайте с PEAR и MDB2 на работающем сервере (не знаю, почему ... не делаю этого сам). В моей локальной тестовой системе она генерирует всегда ошибку MDB2. PHPmyadmin также не выполняет этот запрос. Подсчет необходим, потому что в этом запросе есть не один, а четыре подзадачи.Отладка по подзапросам/ВЛЕВО?

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) 

подвыборки работает, тоже:

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

Большое вам спасибо за любую помощь!

ответ

2

Внутренний запрос должен возвращать ровно один столбец, например:

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

--    ^^ here 

     FROM table1 
     LEFT JOIN 
       table2 
     ON  table1.customID = table2.customID 
     WHERE table1.active=1 
     ) 
+0

Большое спасибо - это, кажется, работает. – relevate