简单的外键连接以检查是否存在任何值

时间:2012-11-14 21:51:24

标签: php mysql sql inner-join

我只是想看看特定用户是否在这两个表之间有一个内连接的结果行:

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。

1 个答案:

答案 0 :(得分:1)

如果为found找到通过LEFT() function SVU开头的课程,则以下只会返回一行,其中包含SERGIO列。如果用户匹配以DISTINCT开头的多个课程,则SVU可用于对多行进行重复数据删除。

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

Here is an example

我假设你已经知道如何在PHP中查询它并使用你正在使用的任何MySQL API(MySQLi,PDO或旧的mysql_*())获取结果