Я пытаюсь создать раздел комментариев для веб-сайта,
Комментарии состоят из имени пользователя, адреса электронной почты и комментария.Я храню эти данные в таблице «комментариев»
CREATE TABLE `comments` (
`commentid` int(5) NOT NULL auto_increment,
`user` varchar(40) NOT NULL default '',
`email` varchar(100) NOT NULL default '',
`comment` text NOT NULL,
PRIMARY KEY (`commentid`)
)
Я хочу выполнить запрос, который собирает все эти данные, но также проверяет адрес электронной почты в таблице «пользователи», чтобы увидеть, существует ли он,Если это так, возьмите аватарку из таблицы «Разное».Если электронное письмо не существует в таблице «пользователи», оно просто остается пустым.
В данный момент с запросом, который я пробовал, он получает данные только из 3 таблиц, если электронное письмо существует в 'таблица пользователей.У меня есть еще один комментарий, который, как анонимный пользователь, остался, но он не захватывается запросом.
CREATE TABLE `users` (
`userid` int(25) NOT NULL auto_increment,
`email` varchar(255) NOT NULL default '',
`username` varchar(25) NOT NULL default '',
PRIMARY KEY (`userid`)
)
CREATE TABLE `misc` (
`miscid` int(4) NOT NULL auto_increment,
`userid` varchar(3) NOT NULL default '',
`avatar` varchar(100) NOT NULL default '',
PRIMARY KEY (`miscid`)
)
Я почти уверен, что мне нужен вложенный выбор в качестве имени столбца, чтобы при наличии электронного письма оно отображалось там... если нет, то оставьте пустым.
РЕДАКТИРОВАТЬ:
Сделал структуру таблицы такой, какой она должна быть.
Это запрос, который я только что попробовал, но он отображает толькострока, которая имеет адрес электронной почты.должен быть другой без адреса электронной почты
SELECT c.comment, c.user, av.avatar
FROM comments c
INNER JOIN users u ON c.email = u.email
LEFT OUTER JOIN (
SELECT userid, avatar
FROM misc
) AS av ON av.userid = u.userid