Доброе время суток. Есть две таблицы:
`Full` и `_group`
Таблица full: id, disciplina, nomer_gr, vakansiya
Таблица group: id, nomer, forma
Суть проблемы в том, что я не понимаю, как правильно сделать запрос: "Выбрать из Full все записи, которые по nomer_gr (в Full) и nomer (в _group) значение forma = "к/о".
Просьба помочь в данном вопросе. Заранее большое спасибо.
@andreyqin Не много ошибся, посмотрел в БД там немного по другому, немного изменил запрос получилось:
SELECT * FROM Full f WHERE LEFT JOIN _group g ON f.nomer_gr = g.nomer WHERE g.forma = "к/о"
Но в ответ 0 строк.
Что я сделал не так?
И как туда еще добавить к выборке из Full
"WHERE vakansiya=1 order by disciplina ASC"?
CREATE TABLE test_db._group (
id int(11) NOT NULL AUTO_INCREMENT,
nomer varchar(64) NOT NULL,
specialnost varchar(64) NOT NULL,
kurs varchar(64) NOT NULL,
kolichestvo varchar(64) NOT NULL,
_type varchar(64) NOT NULL,
forma varchar(64) NOT NULL,
PRIMARY KEY (id)
)
ENGINE = INNODB
AUTO_INCREMENT = 98
AVG_ROW_LENGTH = 176
CHARACTER SET utf8
COLLATE utf8_general_ci;
@andreyqin Не понял, что надо сделать(( да, я очень плохо знаю mysql((( извиняюсь что туплю... Выполняю:
SELECT * FROM Full f LEFT JOIN _group g ON f.nomer_gr = g.nomer WHERE g.forma = "к/о" AND f.vakansiya = 1 ORDER BY f.disciplina ASC;
Отдает 0 строк.
1) Не уверен, но при соединении таблиц, поля в условии ON должны иметь одинаковый тип и ДЛИНУ, а у вас nomer_gr - varchar(64), а nomer - varchar(255)
2) Я так и не понял, нужно ли вам условие f.vakansiya = 1?
3) Проверьте, действительно ли есть такие записи, соответствующие всем условиям в запросе.
Спасибо большое, все работает.
SELECT * FROM Full f LEFT JOIN _group g ON f.nomer_gr = g.nomer WHERE g.forma = "д/о" AND f.vakansiya = 1 ORDER BY f.disciplina ASC;
@andreyqin По неизвестной причине phpMyAdmin при выполнении данных запросов отдавал "0 строк из базы". При выполнении данного запроса из php и вывод var_dump - отдал и обработал все правильно.