2017-06-09 10 views
2

私は3つのテーブルを持っており、テーブルからデータを取得するために内部結合を使用しています。mysqli内部結合:データが他のテーブルに存在しません

select b.pic,b.fname,b.lname, a.job_id, a.uid, a.job_title, a.description, a.city, a.position, 
     a.salary, a.looking_for,a.website,a.date 
    from job_posting a 
    inner join users b 
    inner join job_applied c on a.uid = b.uid and b.uid = c.uid 
    where c.job_id IS NULL and c.uid IS NULL and a.looking_for = 'student' 

上記クエリはデータを返しません。空っぽです。

テーブルを説明しましょう。

job_posting - ジョブ情報が含まれています。
ユーザー - ジョブを投稿したユーザー情報が含まれています。
job_applied - ユーザーがジョブに適用されています。

したがって、私は適用されないジョブを取得したいと思います。 Job_papliedテーブルに私はjob_idとuidを持っています。

+0

https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple- sql-query – Strawberry

+0

はそれを得ました。私はこれのためにフィドルを作成する必要があります。ありがとう – Ironic

+0

まあ、私の助言は、 '三つのもの'を供給することです。それにはフィドルが含まれていてもいなくてもよい。 – Strawberry

答えて

2

代わりのinner joinは次のようにLEFT JOINを試してみてください。

select b.pic,b.fname,b.lname, a.job_id, a.uid, a.job_title,a.description,a.city, a.position, 
a.salary, a.looking_for,a.website,a.date from job_posting a 
LEFT JOIN users b on a.uid = b.uid 
LEFT JOIN job_applied c on b.uid = c.uid 
where c.job_id IS NULL and a.looking_for = 'student' 

し、再試行してください。

+0

私にお試しください。ご回答有難うございます。 – Ironic

+0

エラーを取得中 - #1064 - SQL構文にエラーがあります。あなたのMariaDBサーバのバージョンに対応するマニュアルをチェックして正しい構文を確認してください。 'c.job_idがIS NULL、c.uidがIS NULL、a.looking_forが'学生 ' – Ironic

+0

が該当するテーブルに存在するかどうかチェックしてください? –

関連する問題