2017-04-10 8 views
-1

このクエリは何も返しません。問題はWHERE行のどこかにあると思われますが、わかりません。どんな助けも高く評価されるでしょう!SQLiteクエリが空のカーソルを返します

select companies.name, offers.salary, offers.bonus, offers.equity 
from offers 
join companies 
    on companies.id = offers.company_id 
join students 
    on students.id = offers.student_id 
where students.dob = (select max(dob) from students); 

答えて

0

恐らく戻ってこない - それはデータによって異なります。このスクリプトを実行してみてください:

#!/bin/sh 

sqlite3 <<EOS 
create table companies(id integer primary key, name text); 
create table students(id integer primary key, dob); 
create table offers(salary, 
        bonus, 
        equity, 
        company_id references companies(id), 
        student_id references students(id)); 

insert into companies(id, name) values(1, 'Company X'); 
insert into companies(id, name) values(2, 'Company Y'); 

insert into students(id, dob) values(101, 19910101); 
insert into students(id, dob) values(102, 19920202); 
insert into students(id, dob) values(103, 19930303); 

insert into offers(salary, bonus, equity, company_id, student_id) 
      values('\$80K/yr', '\$6000', 'unknown', 1, 101); 
insert into offers(salary, bonus, equity, company_id, student_id) 
      values('\$70K/yr', '\$5000', 'unknown', 2, 102); 
insert into offers(salary, bonus, equity, company_id, student_id) 
      values('\$60K/yr', '\$4000', 'unknown', 2, 103); 

select 'Companies:'; 
select * from companies; 

select ''; 
select 'Offers:'; 
select * from offers; 

select ''; 
select 'Students:'; 
select id, dob from students; 

select ''; 
select '-----'; 
select companies.name, offers.salary, offers.bonus, offers.equity, dob 
from offers 
join companies 
    on companies.id = offers.company_id 
join students 
    on students.id = offers.student_id 
where students.dob = (select max(dob) from students); 

EOS 

最終的な選択は回答を返す必要があります。今すぐオファーテーブルに3番目の挿入を削除します。最終的な選択は、期待通りに何も返されません。

+0

返すものがあると確信していましたが、間違っていました。あなたの助けをありがとう! – user7847324

関連する問題