我正在研究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)
Subselect也有效:
SELECT *
FROM table1
LEFT JOIN table2
ON (table1.customID = table2.customID)
WHERE table1.active=1
非常感谢您的帮助!
答案 0 :(得分: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
)