2013-08-31 216 views
4

你能糾正這個查詢嗎?它顯示一些語法錯誤。MySQL select where查詢條款

SELECT * 
WHERE `id` IN (SELECT DISTINCT unit_trust_managing_company_id 
        FROM ut_funds 
       ORDER BY `company_name`) 

There SELECT DISTINCT unit_trust_managing_company_id FROM ut_funds ORDER BY company_name` query is working properly。

+4

**不要引用/反引用您的列名**它們只會增加視覺混亂,並且只是讓語法錯誤的一種方法。你需要它們的唯一原因是如果你有一個列名是保留字,並且使用列名是保留字是一個可怕的想法,所以這是你可以一次避免的兩個壞習慣。 –

回答

16

您需要wherefrom條款:不需要爲in聲明

SELECT * 
FROM <some table here> 
WHERE `id` IN (SELECT unit_trust_managing_company_id FROM ut_funds) 

此外,distinctorder by

0

在大多數(所有?)情況下,您可以重寫查詢而不使用where子句中的查詢並獲得更好的性能。嘗試類似:

SELECT DISTINCT t.* 
    FROM some_table t, ut_funds u 
    WHERE t.id=u.unit_trust_managing_company_id