从两个表

时间:2016-03-07 13:15:19

标签: php sql

请任何人都可以帮助我,我熟悉PHP,但我不擅长。请帮忙。我有两个表,两个都有id,见示例,

表1

----------------------------------
   **ID**   |   **NAME**     |   **AGE**    |
----------------------------------
  001   |   john     |    21     |
----------------------------------
  002   |   erik     |    18     |
----------------------------------
  003   |   ella     |    19     |
----------------------------------
and soon...

表2

----------------------------------
   **ID**   |   **SUBJECT**     |   **GRADE**    |
----------------------------------
  001   |   math     |    80     |
----------------------------------
  003   |   english     |    83     |
----------------------------------
and soon....

这是问题所在,我只是想从table1中选择一行,而id在table2中不匹配。

我使用了这个条件,但它不会像我预期的那样工作,这意味着这是错误的,

if($t1_id!=$t2_id){
blah blah blah...
}
else
{
all data is match!
}

当table2中的id与table1匹配时,即使表2中只有一个条目,它也已显示我的data is all match

请帮帮我。如果你不明白我如何展示我的问题,请告诉我,谢谢!。

2 个答案:

答案 0 :(得分:0)

您可以使用exists子句检查另一个表中是否存在记录,例如

select * 
from table1 t1
where t1.id = ?
and exists(
 select * 
 from table2 t2 
 where t2.id = t1.id;
);

答案 1 :(得分:0)

这两个解决方案适用于sqlserver:

解决方案1:

SELECT
  t1.ID, t1.NAME, t1.AGE
FROM
  table1 t1
LEFT JOIN
  table2 t2
ON t1.ID = t2.ID
WHERE t2.ID is null

解决方案2:

SELECT
  ID, NAME, AGE
FROM
  table1 t1
WHERE NOT EXISTS(SELECT * FROM table2 WHERE t1.ID = ID)