从两个表中选择行
问题描述:
请任何人都可以帮助我,我对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....
这里的问题是,我只是想选择从表1的行它的id
不匹配在表2中。
我用这个条件,但它不会工作,我希望如此,这意味着这是错误的方式,
if($t1_id!=$t2_id){
blah blah blah...
}
else
{
all data is match!
}
时,表2中的id
table1中匹配它已经表明我的data is all match
即使只是有table2中的一个条目。
请帮帮我。如果你不知道我如何展示我的问题,请告诉我,谢谢!
答
这两个解决方案将在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)
+0
这太棒了!谢谢你sir t-clausen.dk!解决方案2很棒!非常感谢你.. – Frank
尝试此为您查询:'SELECT * FROM表1, table2 where table1.id = table2.id',这个查询只能找到等级为 – 2016-03-07 13:22:46
的用户@MohsenShakibafar你的解决方案只会找到匹配(这不是要求的)。你正在使用一种超过20岁的方法来加入你的表格 –
@ t-clausen.dk你是对的,是的,它的20岁,更好的做法是'加入'只想检查他确切想要的东西:) – 2016-03-07 13:35:14