在select中选择mysql

时间:2011-11-11 01:14:35

标签: php mysql

这是我第一次涉足数据库,并想知道是否有可能做到以下几点: 我有两张桌子

student (id, name, phone)
photos  (id, student_id, photo)

我想找回名字叫'汤姆'的学生电话,但前提是他有照片。 是否有可能出现这样的情况?

非常感谢

4 个答案:

答案 0 :(得分:3)

select s.phone from student s 
inner join photos p 
on p.student_id=s.id
where p.photo is not null

答案 1 :(得分:0)

这称为INNER JOIN

select top 1 name from student s 
inner join photos p
on s.id = p.student_id
where name like 'Tom'

答案 2 :(得分:0)

是。使用EXISTS

SELECT phone
FROM student
WHERE name = 'Tom'
  AND EXISTS
      ( SELECT *
        FROM photos
        WHERE photos.student_id = student.id
      )

或使用JOIN。您需要使用DISTINCTGROUP BY,这样如果用户有20张照片,您就不会再使用同一部手机20次:

SELECT DISTINCT student.phone
FROM student
  JOIN photos
    ON photos.student_id = student.id
WHERE student.name = 'Tom'

答案 3 :(得分:0)

在这种情况下,您可以使用联接。试试这个:

SELECT student.phone
FROM students
INNER JOIN photos
ON student.id=photos.student_id
WHERE student.name LIKE 'Tom'