Mysql 如何将这两个Select查询与OR案例相结合
我想选择所有行,其中Mysql 如何将这两个Select查询与OR案例相结合,mysql,sql,Mysql,Sql,我想选择所有行,其中where(uid={$uid}或uid=**此处**)where**此处**是从下面的查询2中检索到的cids 问题1: SELECT * FROM `t_activities` WHERE (`uid` = {$uid} OR `uid` = **HERE** ) AND `del` = 0 GROUP BY `fid` ORDER BY `time` DESC LIMIT 10 和问题2: SELECT `cid` F
where(uid={$uid}或uid=**此处**)
where**此处**
是从下面的查询2中检索到的cid
s
问题1:
SELECT * FROM `t_activities`
WHERE (`uid` = {$uid} OR `uid` = **HERE** )
AND `del` = 0
GROUP BY `fid`
ORDER BY `time` DESC
LIMIT 10
和问题2:
SELECT `cid` FROM `t_con` WHERE `uid` = {$uid} AND `flag` = 1
您也可以作为联接来执行此操作:
SELECT *
FROM `t_activities` ta left outer join
(SELECT `cid`
FROM `t_con`
WHERE `uid` = {$uid} AND `flag` = 1)
) tc
on ta = tc.cid
WHERE (`uid` = {$uid} OR tc.`uid` is not null) AND `del` = 0
GROUP BY `fid`
ORDER BY `time` DESC
LIMIT 10
顺便说一下,作为SQL语句,“GROUPBYFID”看起来很奇怪。这在mysql中是允许的,但我认为这是一种不好的做法。最好明确说明你在做什么:
SELECT fid, min(<field1>) as Field1, . . .
选择fid,min()作为字段1。
这有助于防止返回查询或尝试修改查询时出错。您也可以作为联接来执行此操作:
SELECT *
FROM `t_activities` ta left outer join
(SELECT `cid`
FROM `t_con`
WHERE `uid` = {$uid} AND `flag` = 1)
) tc
on ta = tc.cid
WHERE (`uid` = {$uid} OR tc.`uid` is not null) AND `del` = 0
GROUP BY `fid`
ORDER BY `time` DESC
LIMIT 10
顺便说一下,作为SQL语句,“GROUPBYFID”看起来很奇怪。这在mysql中是允许的,但我认为这是一种不好的做法。最好明确说明你在做什么:
SELECT fid, min(<field1>) as Field1, . . .
选择fid,min()作为字段1。
这有助于防止返回查询或尝试修改查询时出错。此方法的名称是什么?我在寻找‘连接’、‘左连接’、‘内部连接’等,但无法找到。谢谢。这个方法叫什么?我在寻找‘连接’、‘左连接’、‘内部连接’等,但无法找到。谢谢,这很有效。