Where 子句不能以任何不同的方式工作
Where clause not working in any different ways
我有这个代码:
Select p_firstname, p_email
From teacher as t inner join borrowed as b
where t.p_id = b.p_id;
没有 where 子句也能完美运行。
一旦我添加它,它就会给出记录数:0 .
任何解决方案?我上传了一张图片
您只是想在 p_id 上尝试 INNER JOIN 两个 table 吗?如果是这样的话:
SELECT p_firstname, p_email FROM Teacher t
INNER JOIN Borrowed b ON t.p_id = b.p_id
如果你想要return来自老师table的所有记录,即使在借来的table中有空值p_id,使用LEFT JOIN
代替。
如果我没记错的话,因为您使用的是内部联接,而不是使用 Where t.p_id = b.p_id;
,您需要使用 ON
。例如:
SELECT p_firstname, p_email
FROM teacher as t
INNER JOIN borrowed as b
ON (t.p_id = b.p_id);
如果您需要更多信息,例如 name = "bob"
,然后您可以使用 WHERE
语句。试试我写的固定语句,如果有效请告诉我!
编辑:
如果 teacher
和 borrowed
是两个独立的数据库,您也可以试试这个:
SELECT p_firstname, p_email
FROM teacher, borrowed
WHERE (teacher.p_id = borrowed.p_id);
我有这个代码:
Select p_firstname, p_email
From teacher as t inner join borrowed as b
where t.p_id = b.p_id;
没有 where 子句也能完美运行。
一旦我添加它,它就会给出记录数:0 .
任何解决方案?我上传了一张图片
您只是想在 p_id 上尝试 INNER JOIN 两个 table 吗?如果是这样的话:
SELECT p_firstname, p_email FROM Teacher t
INNER JOIN Borrowed b ON t.p_id = b.p_id
如果你想要return来自老师table的所有记录,即使在借来的table中有空值p_id,使用LEFT JOIN
代替。
如果我没记错的话,因为您使用的是内部联接,而不是使用 Where t.p_id = b.p_id;
,您需要使用 ON
。例如:
SELECT p_firstname, p_email
FROM teacher as t
INNER JOIN borrowed as b
ON (t.p_id = b.p_id);
如果您需要更多信息,例如 name = "bob"
,然后您可以使用 WHERE
语句。试试我写的固定语句,如果有效请告诉我!
编辑:
如果 teacher
和 borrowed
是两个独立的数据库,您也可以试试这个:
SELECT p_firstname, p_email
FROM teacher, borrowed
WHERE (teacher.p_id = borrowed.p_id);