所以我有 3 张 table ,
Companies (company_id, company_name)
Stock_Exchanges(stock_exchange_id, stock_exchange_name, stock_exchange_manager)
Stock_Exchanges_Companies(stock_exchange_id, company_id)
我正在尝试选择不在特定 stock_exchange
上的所有公司。
到目前为止我有这个:
SELECT COMPANY_NAME
FROM COMPANIES c
LEFT OUTER JOIN STOCK_EXCHANGES_COMPANIES sec
ON c.COMPANY_ID = sec.COMPANY_ID
LEFT OUTER JOIN STOCK_EXCHANGES se
ON sec.STOCK_EXCHANGE_ID = se.STOCK_EXCHANGE_ID
WHERE sec.COMPANY_ID != se.COMPANY_ID;
当我使用 WHERE
子句时,它返回零行。任何帮助将不胜感激!
最佳答案
嘿伙计们,我成功解决了这个问题!
我添加了一个额外的 AND 子句:
SELECT COMPANY_NAME
FROM COMPANIES c
LEFT OUTER JOIN STOCK_EXCHANGES_COMPANIES sec ON c.COMPANY_ID = sec.COMPANY_ID
LEFT OUTER JOIN STOCK_EXCHANGES se ON sec.STOCK_EXCHANGE_ID = se.STOCK_EXCHANGE_ID
WHERE sec.COMPANY_ID != se.COMPANY_ID
AND sec.stock_exchange_id != idhere;
关于SQL如何有效地使用wheresomething!=something?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18334081/