Как я уже сказал в своем комментарии, это довольно легко (если вы read the manual):
SELECT field1, field2, field3 AS altName, lastFieldNoCommaHere
FROM table
WHERE someField = 'value'
AND id IN (1,2,3,4,5,6,7,8,9)
AND (dateField > NOW()
OR dateField IS NULL);
RTM и не использовать mysql_*
расширение, устарело. Используйте PDO
или mysqli_*
, а не только из-за проблемы с отменой, But for various reasons.
Seing, как вы используете movie.star1
в вашем где предложение, вы должны смотреть в the JOIN
syntax тоже:
SELECT actor_id.name
FROM actor_id
LEFT JOIN movie
ON movie.star1 = actor_id.actor_id
WHERE actor_id.actor_id IN (1,2,4,5,6,7,8,123);
Это, вероятно, что вы после этого, или, возможно:
SELECT actor_id.name
FROM actor_id
WHERE actor_id.actor_id
IN (SELECT movie.star1
FROM movie
WHERE movie.release_date >= '2012-01-01');
Это пример подзапроса. Будьте осторожны с этим, потому что это часто довольно медленный ...
И как Fluffeh указал мне, вы не можете выбрать несколько значений, и придется прибегнуть к чему-то вроде этого:
SELECT actor_id.name
FROM actor_id
WHERE actor_id.actor_id
IN (SELECT IFNULL(movie.star1, IFNULL(movie.star2, movie.star3))
FROM movie
WHERE movie.release_date >= '2012-01-01');
Или:
SELECT actor_id.name
FROM actor_id
WHERE actor_id.actor_id
IN (SELECT IF (movie.star1 <= 12,
IF (movie.star2 <= 15,
movie.star3,
movie.star2),
movie.star1)
FROM movie
WHERE movie.release_date >= '2012-01-01');
Пожалуйста, укажите структуру своей базы данных. У вас действительно есть таблица под названием actor_id? И поскольку вы не присоединяетесь ни к чему, как вы можете использовать movie.star1? Это должно вызвать синтаксическую ошибку. –
Неправильный синтаксис SELECT –
Запятые, запятые, а у вас действительно есть таблица под названием something_id? Я думаю, что пришло время вернуться к [My] SQL 101 – Strawberry