这是我第一次涉足数据库,并想知道是否有可能做到以下几点: 我有两张桌子
student (id, name, phone)
photos (id, student_id, photo)
我想找回名字叫'汤姆'的学生电话,但前提是他有照片。 是否有可能出现这样的情况?
非常感谢
答案 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
。您需要使用DISTINCT
或GROUP 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'