bất cứ ai có thể giúp tôi tìm ra lý do tại sao tôi nhận được một lỗi trên cms.CRIME_ID
:Weird Oracle SQL "không hợp lệ Identifier" lỗi
invalid identifier
select c.criminal_id, c.first, c.last, cms.CRIME_ID, cc.crime_code, cc.fine_amount
from criminals c join crimes cms on c.criminal_id = cms.criminal_id
join crime_charges cc using (crime_id)
order by c.first, c.last;
tôi biết một sự thật tuyệt đối rằng cột tồn tại và tôi có thể tham khảo mỗi khác trong bảng đó ngoại trừ điều đó.
Điều duy nhất khác biệt về cột đó là nó là khóa chính cho bảng đó.
EDIT: Đây là lỗi đầy đủ và tập lệnh tạo bảng.
Error starting at line 1 in command:
select c.criminal_id, c.first, c.last, cms.CRIME_ID, cc.crime_code, cc.fine_amount
from criminals c join crimes cms on c.criminal_id = cms.criminal_id
join crime_charges cc using (crime_id)
order by c.first, c.last
Error at Command Line:1 Column:39
Error report:
SQL Error: ORA-00904: "CMS"."CRIME_ID": invalid identifier
00904. 00000 - "%s: invalid identifier"
*Cause:
*Action:
CREATE TABLE crimes
(crime_id NUMBER(9),
criminal_id NUMBER(6),
classification CHAR(1),
date_charged DATE,
status CHAR(2),
hearing_date DATE,
appeal_cut_date DATE);
ALTER TABLE crimes
MODIFY (classification DEFAULT 'U');
ALTER TABLE crimes
ADD (date_recorded DATE DEFAULT SYSDATE);
ALTER TABLE crimes
MODIFY (criminal_id NOT NULL);
ALTER TABLE crimes
ADD CONSTRAINT crimes_id_pk PRIMARY KEY (crime_id);
ALTER TABLE crimes
ADD CONSTRAINT crimes_class_ck CHECK (classification IN('F','M','O','U'));
ALTER TABLE crimes
ADD CONSTRAINT crimes_status_ck CHECK (status IN('CL','CA','IA'));
ALTER TABLE crimes
ADD CONSTRAINT crimes_criminalid_fk FOREIGN KEY (criminal_id)
REFERENCES criminals(criminal_id);
ALTER TABLE crimes
MODIFY (criminal_id NOT NULL);
EDIT2: Ngoài ra, tôi nên có lẽ kể rằng khi không sử dụng tham gia và chỉ cần chọn báo cáo thường xuyên Tôi có thể truy cập vào cột tốt, như trong ví dụ mã sau:
select c.criminal_id, c.first, c.last, cms.crime_id, cc.crime_code, cc.fine_amount
from criminals c, crime_charges cc, crimes cms
where c.criminal_id = cms.criminal_id
and cms.crime_id = cc.crime_id
order by c.first, c.last;
Hãy gửi các chi tiết của các bảng tham gia –
Liệu người dùng của bạn có sự cho phép trên bàn tội phạm? –
Định nghĩa cho bảng tội phạm_charges là gì? – Ollie