我有两个表,我想获得的信息与外部左联接。选择数据与加入
我有以下查询:
SELECT *
FROM sportjefit_user
LEFT OUTER JOIN vriend ON sportjefit_user.id = vriend.vriend2
这一结果:
我只是想记录,其中 'vriend1' 或 'vriend2' 不是48
可有人请帮帮我?
谢谢。
我有两个表,我想获得的信息与外部左联接。选择数据与加入
我有以下查询:
SELECT *
FROM sportjefit_user
LEFT OUTER JOIN vriend ON sportjefit_user.id = vriend.vriend2
这一结果:
我只是想记录,其中 'vriend1' 或 'vriend2' 不是48
可有人请帮帮我?
谢谢。
添加where clause这将几乎完全映射到你说什么,你需要:
SELECT *
FROM sportjefit_user LEFT OUTER JOIN vriend ON sportjefit_user.id=vriend.vriend2
where !(vriend1=48 or vriend2=48)
or (vfriend1 is null and vfriend2 is null);
SELECT * FROM sportjefit_user
LEFT OUTER JOIN vriend ON sportjefit_user.id = vriend.vriend2
WHERE vriend1 <> 48
OR vriend2 <> 48
或者,如果你想确保既不场为48
SELECT * FROM sportjefit_user
LEFT OUTER JOIN vriend ON sportjefit_user.id = vriend.vriend2
WHERE vriend1 <> 48
AND vriend2 <> 48
试试这个:
SELECT * FROM sportjefit_user
LEFT OUTER JOIN vriend
ON sportjefit_user.id = vriend.vriend2
WHERE ((vriend.vriend1<>48) AND (vriend.vriend2<>48))
这将返回下述情形之一vriend1或vriend2不是48 ..我要选择的值,其中他们都不值等于48.我现在得到的是..例如:vriend1 = 51,vriend2 = 48或另一个例子,vriend1 = 48 vriend2 = 89个 – 2011-05-12 15:47:13
@Seeger Mattijs:对不起,我没有ü nderstand。那么,你是否需要所有记录:vriend1是48还是vriend2是48?所以,我认为你可以用'AND'改变'OR'。让我知道这是你需要什么... – Marco 2011-05-12 16:33:59
这做到了!(vfriend1 = 48或vfriend2 = 48)或(vfriend1为null并且vfriend2为null) – 2011-05-12 17:32:58
我试过,但日返回值是'48'。我想选择vriend1或vriend2都不等于48的值。我不能选择使用'is NULL',因为这些字段可能在某些时候填满了。 – 2011-05-12 15:45:24
所以你的意思是vfriend1!= 48 AND vfriend2!= 48 – 2011-05-12 15:46:45
这不会返回:( – 2011-05-12 15:47:48