0

MySQL でいくつかのテーブルを結合しようとしていますが、次のようなエラーが表示されるようです: #1066 - 一意のテーブル/エイリアスではありません: 'calendar_jobs'

cal_events、2 つのユーザー ビット、およびジョブ テーブルの宛先列からすべてを選択したいのですが、ジョブがない場合は「null」になります。右の結合は法案に合っているように見えましたが、機能しません! 誰か助けてくれませんか!?

アップデート:

前のクエリで助けてくれてありがとう、私は今これまでです:

SELECT calendar_events.* , calendar_users.doctorOrNurse, calendar_users.passportName, calendar_jobs.destination
FROM `calendar_events` , `calendar_users`
RIGHT JOIN calendar_jobs ON calendar_events.jobID = calendar_jobs.jobID
WHERE `start` >= 0
AND calendar_users.userID = calendar_events.userID;

しかし、次のようなエラーが表示されます: #1054 - 'on 句' の列 'calendar_events.jobID' が不明です

今度は何だ!?

再度、感謝します!

4

3 に答える 3

2

calendar_jobsJOIN で既に指定しているため、FROM 句では使用しないでください。これを試して:

SELECT calendar_events.* , calendar_users.doctorOrNurse, calendar_users.passportName, calendar_jobs.destination
FROM `calendar_events` , `calendar_users`
RIGHT JOIN calendar_jobs ON calendar_events.jobID = calendar_jobs.jobID
WHERE `start` >=0
AND calendar_users.userID = calendar_events.userID

更新の回答:

すべての証拠は、列がそのテーブルに存在しないことを示しているようです:)。

これを試して:

SELECT calendar_events.* , calendar_users.doctorOrNurse, calendar_users.passportName, calendar_jobs.destination
FROM `calendar_users`, `calendar_events`
RIGHT JOIN calendar_jobs ON calendar_events.jobID = calendar_jobs.jobID
WHERE `start` >=0
AND calendar_users.userID = calendar_events.userID

イベントとジョブを結合するため、FROM 内のテーブルの順序が入れ替わっています。

于 2010-06-11T08:51:42.637 に答える
1

これを実行してください: show create table calendar_events;、結果をここに投稿してください。

2 番目の質問に答えるには、テーブル構造を確認する必要があります。

于 2010-06-14T09:40:13.897 に答える
0

calendar_jobsクエリに 2 回リストされています。

2 行目に 1 回、RIGHT JOIN ステートメントに 1 回。

于 2010-06-11T08:50:58.240 に答える