1

特定のユーザーが、これら2つのテーブル間に内部結合の単一の結果行を持っているかどうかを確認しようとしています。

create table course
(
  id int primary key auto_increment,
  name varchar(255)
);

create table persons
(
  id int primary key auto_increment,
  username varchar(255),
  courseid int,
  foreign key (courseid) references course(id)
)

基本的に私のクエリは次のようになります。

「ユーザーSERGIOが文字で始まるコースにいる場合はSVU?」結果の行がある場合は、PHPコードでtrueを返したいと思います。

4

1 に答える 1

1

以下は、関数を介してfound始まるコースが。 に対して見つかった場合に呼び出される列を持つ単一の行を返すだけです。は、ユーザーが。で始まる複数のコースに一致する場合に、複数の行を重複排除するのに役立ちます。SVULEFT()SERGIODISTINCTSVU

SELECT DISTINCT 1 AS found
FROM
  persons 
  JOIN course ON persons.courseid = course.id
WHERE 
  LEFT(course.name, 3) = 'SVU'
  AND username = 'SERGIO'

これが例です

PHPでこれをクエリし、使用しているMySQL API(MySQLi、PDO、または古いmysql_*())を使用して結果をフェッチする方法をすでに知っていると思います。

于 2012-11-14T21:52:47.313 に答える