コメントで言ったように、とても簡単です (マニュアルを読めば):
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);
mysql_*
RTM および拡張機能を使用しないでください。非推奨です。PDO
またはを使用するmysqli_*
のは、非推奨の問題だけでなく、さまざまな理由があります。
movie.star1
where句で使用しているように、JOIN
構文も調べる必要があります。
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');