1

そのため、やや複雑なクエリを実行しようとしていて、問題が発生しています。最も論理的であると思われるため、次のように構成しました。

SELECT (intake.id, s_matters.id, s_calls.cid, s_events.id) AS id, 
      (intake.name, s_matters.casename, s_calls.name, s_events.subject) AS title 
 FROM intake, s_matters, s_calls, s_events 
WHERE title LIKE '%mi%'

それは次を返します:

エラー コード: 1241
オペランドには 1 列を含める必要があります

したがって、ブラケット構造と関係があることはわかっていますが、正しく行う方法がわかりません。

4

3 に答える 3

4

エイリアスは 1 つの列のみを参照できます。エイリアスが各リストの最後の列を意図している場合は、次のようにします。

SELECT intake.id, s_matters.id, s_calls.cid, s_events.id AS id, intake.name, 
    s_matters.casename, s_calls.name, s_events.subject AS title 
FROM intake, s_matters, s_calls, s_events 
WHERE title LIKE '%mi%' 

ONまた、結合から句が欠落しています。クエリは何を達成しようとしていますか?

于 2010-09-13T19:37:33.487 に答える
2

何をしようとしているのか不明

SELECT concat(intake.id, s_matters.id, s_calls.cid, s_events.id) AS id, concat(intake.name, s_matters.casename, s_calls.name, s_events.subject) AS title FROM インテーク, s_matters, s_calls, s_events WHERE タイトル LIKE '%mi%

あなたが意図したものかもしれません。redfilter が指摘しているように、結合には ON 句がありません。

于 2010-09-13T19:41:12.027 に答える
0

私は、必要なものが次の方法で返されるのが最善だと思います。

SELECT id, name title, 'intake' table 
FROM intake WHERE name LIKE '%mi%'  
UNION ALL
SELECT id, casename title, 's_matters' table 
FROM s_matters WHERE casename LIKE '%mi%'  
UNION ALL
SELECT cid AS id, name title, 's_calls' table 
FROM s_calls WHERE name LIKE '%mi%'  
UNION ALL
SELECT id, subject title, 's_events' table 
FROM s_events WHERE subject LIKE '%mi%'
于 2010-09-14T14:16:09.617 に答える