私は2つのテーブルall_jobsとjobs_appliedを持っています。問題は、私はall_jobsテーブルからジョブのリストを取得したいです。現時点では、私はこのクエリを持っていますが、それは私に両方のテーブルから共通のレコードを与えるだけです。MySql:2つのテーブルを結合して共通データを取得しない
SELECT b.uid
, a.jobtitle
, a.job_id
FROM job_posting a
left
join job_applied b
on a.job_id = b.job_id
Where b.uid != 10 and disable=0 and draft =0
誰でもこのことについて助言できますか?
おかげ
編集:その不明確なら、私に教えてください。私はより良い説明をしようとします。
のjob_postingテーブルには24個のレコードがあります。 job_appliedテーブルには2つのレコードがあります。どちらの表にもjob_idフィールドがあります。私は2つのテーブルに共通の1つのレコードがあるため、私は23レコードを期待しているクエリを実行すると、しかし、私は単一のレコードを取得しています。
この質問を確認しました。 What's the difference between INNER JOIN, LEFT JOIN, RIGHT JOIN and FULL JOIN?しかし、私は自分の状況でどのように使用することができますか分かりません。
EDIT2:
job_id,
title,
skills,
post_date
をjob_posting表構造
は私が達成するために何をしようとしています
id,
job_id,
uid,
apply_date
をjob_applied。 job_postingテーブルからレコードのリストを取得したいが、これらのレコードはjob_appliedテーブルに特定のuid
で存在してはいけません。だから、私はどこに2つのものを追加しなければならないということを意味します.1つはuid
の節、もう1つはjob_id
です。
以下のクエリも試しましたが、0個のレコードが返されています。
SELECT
a.jobtitle
, a.job_id
FROM job_posting a
left
join job_applied b
on a.job_id = b.job_id
Where (b.job_id is null and a.disable=0 and a.draft =0 and b.uid !=10)
EDIT3:
私は今、このクエリを使用していますし、それが正しい結果を返しています。
Select a.jobtitle, a.job_id from job_posting a where
a.job_id not in (select b.job_id from job_applied b WHERE b.uid=1)
AND a.disable=0 AND a.draft =0
私は何か間違っているかどうか教えてください。
よくあることはわかりません。結果の例と期待される結果を表示できますか? –
テーブルjob_postingはどのようにall_jobsに関係していますか? –
私は質問を更新しました。 – Ironic