Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте! Не могу правильно объединить таблицы, хотя,кажется ответ на поверхности:-(
Есть четыре таблицы:
CREATE TABLE user_folders (
id int(11) NOT NULL auto_increment,
user_id int(11) NOT NULL,
folder_path varchar(256) NOT NULL,
project_n varchar(256) NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (user_id) REFERENCES users(id)
CREATE TABLE user_files (
id int(11) NOT NULL auto_increment,
CN_CODE_OF_DOCUMENTS varchar(200),
CN_VERSION varchar(20),
TDM_DESCRIPTION varchar(255),
project_id int(11) NOT NULL,
CN_DATA_POSTUPL varchar(50),
STATUS varchar(55)
PRIMARY KEY (id),
FOREIGN KEY (project_id) REFERENCES user_folders(id)
CREATE TABLE user_files_remarks (
id int(11) NOT NULL auto_increment,
doc_id int(11) NOT NULL,
CN_REMARK varchar(20000),
CN_DATE varchar(50),
CN_STATE varchar(20),
PRIMARY KEY (id),
FOREIGN KEY (doc_id) REFERENCES user_files(id)
CREATE TABLE remark_answer (
id int(11) NOT NULL auto_increment,
remark_id int(11) NOT NULL,
CN_REMARK varchar(20000),
registered tinyint(2) default 0,
timestamp int(10),
PRIMARY KEY (id),
FOREIGN KEY (remark_id) REFERENCES user_files_remarks(id)
Запрос должен выдавать все незарегистрированные ответы к замечаниям (remark_answer у которых registered=0), и соответственно подставлять недостающие поля по значениям из других таблиц.
Вот то, что есть:
SELECT user_folders.project_n as CN_PROJECT,
user_files.CN_CODE_OF_DOCUMENTS as CN_CODE_OF_DOCUMENTS,
user_files.CN_VERSION as CN_VERSION,
user_files_remarks.CN_REMARK as CN_REMARK,
remark_answer.CN_REMARK as CN_ANSWER
FROM remark_answer,user_folders,user_files,user_files_remarks
WHERE remark_answer.registered=0 AND remark_answer.remark_id=user_files_remarks.id AND user_files_remarks.doc_id=user_files.id AND user_files.project_id=user_folders.id
Но сей запрос срабатывает неправильно:выдает 0 записей.
Неактивен
Скорее всего в какой то таблице, не хватает записей, и изо этого, общая связь обрывается.
Проверьте сначала запрос только с двумя таблицами, потом присоедините еще одну и так далее ...
Неактивен
пробую...
Неактивен
Ошибка была в данных. Евгениий, Вы гений!)
Неактивен