Через внешние ключи делать не надо т.к. они у меня по какой то причине не работают.
SELECT
USERS.IDUSERS,
USERS.name,
LIST_QUERY.TXTQUERY
FROM
STATUS_QUERY
INNER JOIN LIST_QUERY ON (STATUS_QUERY.ibq = LIST_QUERY.ibq)
RIGHT OUTER JOIN USERS ON (STATUS_QUERY.id_users = USERS.idusers)
ORDER BY
USERS.IDUSERS,
STATUS_QUERY.READING
SET FOREIGN_KEY_CHECKS=0;
DROP DATABASE IF EXISTS mytest;
CREATE DATABASE mytest
CHARACTER SET 'cp1251'
COLLATE 'cp1251_general_ci';
USE mytest;
#
# Structure for the `list_query` table :
#
DROP TABLE IF EXISTS list_query;
CREATE TABLE list_query (
ibq int(11) NOT NULL AUTO_INCREMENT,
txtquery varchar(255) DEFAULT NULL,
PRIMARY KEY (ibq)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=cp1251;
#
# Structure for the `users` table :
#
DROP TABLE IF EXISTS users;
CREATE TABLE users (
idusers int(11) NOT NULL AUTO_INCREMENT,
name varchar(50) DEFAULT NULL,
PRIMARY KEY (idusers)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=cp1251;
#
# Structure for the `status_query` table :
#
DROP TABLE IF EXISTS status_query;
CREATE TABLE status_query (
ids int(11) NOT NULL AUTO_INCREMENT,
ibq int(11) DEFAULT NULL,
reading int(11) DEFAULT NULL,
id_users int(11) DEFAULT NULL,
PRIMARY KEY (ids),
KEY id_users (id_users),
KEY ibq (ibq),
CONSTRAINT status_query_fk1 FOREIGN KEY (ibq) REFERENCES list_query (ibq) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT status_query_fk FOREIGN KEY (id_users) REFERENCES users (idusers) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=cp1251;
а дальше - пользователи работают с этими запросами и вставляют данные в STATUS_QUERY т.е. делать ещё один запрос к list_query получается?
SELECT
LIST_QUERY.ibq,
LIST_QUERY.TXTQUERY
FROM
LIST_QUERY
where
LIST_QUERY.ibq in (select ibq from STATUS_QUERY
where STATUS_QUERY.id_users in (select idusers from USERS
where UPPER(USERS.name) = UPPER('петров')
)
)
Вы бы более точно сформулировали требование.....
"STATUS_QUERY INNER JOIN ......." а этот с ошибкой - я пока разбираюсь.
Dima1967:
© Цитата:
"STATUS_QUERY INNER JOIN ......." а этот с ошибкой - я пока разбираюсь.
Например, с сайта добавили 10 запросов в list_query, в таблицу status_query пользователь 'иванов' занёс статус для 7-ми вопросов - это значит ,что при следующем входе в админчасть у него должна быть следующая картинка перед глазами:
сначало идут 3-ри непросмотренных запроса потом 7-мь просмотренных и того у него перед глазами все 10-ть запросов которые в базе но сгруппированные.
сейчас запросы возращают только то ,что проставленно в status_query т.е. эти 7-мь запросов , а 3-х нет. Надо ,что бы и эти 3-ри тоже были.
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.