此查詢在where子句中給出一個未知列公司的錯誤。我發現where子句先運行,然後select運行。這可能是這裏的錯誤。但我不知道如何糾正這一點,以獲得結果集公司。MySQL在where子句後選擇select
SELECT trnsdriverid,
name,
(SELECT transcompany.name
FROM transcompany,
transcompdriver
WHERE transcompany.trnscompid = transcompdriver.trnscompid) AS 'company',
address,
dob,
license,
telephone
FROM transcompdriver
WHERE ? LIKE 'All'
OR name LIKE '%"+keyword+"%'
OR company LIKE '%"+keyword+"%'
OR trnsdriverid LIKE '%"+keyword+"%'
那是因爲你是走樣的結果嵌套選擇爲「公司」 - 該列實際上不存在。您不能在where語句中引用列別名。您應該重寫此查詢以使用JOIN,然後在實際的「TransCompany.name」列上進行過濾。 – 2013-03-25 17:02:58
公司專欄沒有與其他專欄 – 2013-03-25 17:05:02
@Cory Thnx相同數量的行作爲回覆。我會嘗試加入。 – amal 2013-03-25 17:09:16