次のステートメントは機能します。
SELECT p._id, last_name, first_name_pref, title, photo_big
FROM People p NATURAL JOIN SpecialtyAreas s
WHERE specialty_area_1 = (SELECT s._id FROM SpecialtyAreas s WHERE s.name = 'Customer Service')
ORDER BY last_name, first_name_pref;
しかし、これはそうではありません:
SELECT p._id, last_name, first_name_pref, title, photo_big
FROM People p NATURAL JOIN Offices o
WHERE office = (SELECT o._id FROM Offices o WHERE o.name = 'Beadle County')
ORDER BY p.last_name, p.first_name_pref;
2 つのテーブル間で見つけることができる唯一の違いは、People.office
としてマークされているのINTEGER REFERENCES "Offices._id"("")
に対し、としてPeople.specialty_area_1
マークされていることです。TEXT REFERENCES "SpecialtyAreas._id"("").
データ型の違いがこの問題を引き起こしますか?
また、両方の文字列は実際にはデータベースにあります。
データベースにクエリを実行する簡単な方法はありますか? クエリはspecialty_areas
、私が望むものを達成します。クエリから同じ結果が得られない理由を見つけようとしていoffice
ます。