douganggu4392 2016-02-26 14:44
浏览 43
已采纳

组合2选择合二为一

I have a query in mysql which work perfect.

        $result =mysql_query("
            SELECT a.IDN, c.Name_F, c.Name_L, d.Url_photo, 
                    ( SELECT COUNT(*)
                        FROM Messages AS e
                        WHERE   e.IDN = a.IDN               
                    ) AS mes_new ,
                    ( SELECT LEFT(s.Messages,25)
                        FROM Messages AS s
                        WHERE s.Time= (SELECT MAX(k.Time)
                        FROM Messages AS k
                        WHERE k.IDN = a.IDN)

                    ) AS latest 
            FROM offers AS a 
                    LEFT JOIN info AS c
                ON a.IDN = c.IDN
                    LEFT OUTER JOIN photos AS d
                ON c.IDN = d.IDN AND d.Flag_av='1'

            Where a.IDN_with='$IDN' AND a.Status='2'    
        ");

But I have also one IDN and need to make also a similar another Select. Something like that:

            $result =mysql_query("
            SELECT a.IDN, c.Name_F, c.Name_L, d.Url_photo, 
                    ( SELECT COUNT(*)
                        FROM Messages AS e
                        WHERE   e.IDN = a.IDN               
                    ) AS mes_new ,
                    ( SELECT LEFT(s.Messages,25)
                        FROM Messages AS s
                        WHERE s.Time= (SELECT MAX(k.Time)
                        FROM Messages AS k
                        WHERE k.IDN = a.IDN)

                    ) AS latest 
            FROM users AS a 
                    LEFT JOIN info AS c
                ON a.IDN = c.IDN
                    LEFT OUTER JOIN photos AS d
                ON c.IDN = d.IDN AND d.Flag_av='1'

            Where  a.IDN='$active'  
        ");

So as you can see change only table (from offer to user) and condition (Where), but is it possible to make it in one Select? As double select I thought about UNION since if the IDN will be in two table the row can repeat and I don't need it. But again I would like to have it in one Select. Is it possible?

  • 写回答

1条回答 默认 最新

  • doutizhou5312 2016-02-26 15:03
    关注

    Well I figured it out by my self, since user table have all users I will take all row from them with more complex condition. The first tests got good. If you see mistake or have a better variant please share ))) THANKS.

            $result =mysql_query("
                SELECT a.IDN, c.Name_F, c.Name_L, d.Url_photo, 
                        ( SELECT COUNT(*)
                            FROM Messages AS e
                            WHERE   e.IDN = a.IDN               
                        ) AS 'mes_new' ,
                        ( SELECT LEFT(s.Messages,25)
                            FROM Messages AS s
                            WHERE s.Time= (SELECT MAX(k.Time)
                            FROM Messages AS k
                            WHERE k.IDN = a.IDN)
    
                        ) AS latest 
                FROM users AS a 
                        LEFT JOIN offers AS r
                    ON a.IDN = r.IDN 
                        LEFT JOIN info AS c
                    ON a.IDN = c.IDN
                        LEFT OUTER JOIN photos AS d
                    ON c.IDN = d.IDN AND d.Flag_av='1'
    
                Where (r.IDN_with='$IDN' AND r.Status='2') OR a.IDN='$active'       
            ");
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题