-3

PHP を使用して MySQL DB にアクセスしようとしています。テーブルから 6 つの値を取得してactor_id、それらを html テーブルに表示する必要があります。私のSELECTステートメントは次のとおりです。

SELECT actor_id.actor_name, FROM actor_id WHERE movie.star1 = actor_id.actor_id;

別のmovie.star2、movie.star3などを追加するにはどうすればよいですか??

DB構造

NAME - フィールド movie - movie_id title star1 star2 actor_id - actor_id actor_name

4

4 に答える 4

1

コメントで言ったように、とても簡単です (マニュアルを読めば):

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.star1where句で使用しているように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');
于 2013-08-30T11:10:43.497 に答える
0

or ステートメントを使用します。あなたのデータベース構造はわかりませんが、 or を使用すると次のようになります。

SELECT actor_id.actor_name,
FROM actor_id 
WHERE (movie.star1 = actor_id.actor_id or movie.star2 = actor_id.actor_id);
于 2013-08-30T11:01:32.527 に答える
0
SELECT actor_id.actor_name
FROM actor_id WHERE actor_id.actor_id in [specify the values like movie.star2, movie.star3... etc];

ただし、 FROM .. の前にコンマを使用することはできません。

于 2013-08-30T11:07:19.507 に答える