我在mysql中有一个完美的查询。
$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'
");
但我还有一个IDN,还需要制作一个类似的另一个选择。这样的事情:
$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'
");
因此,您可以看到仅更改表(从商品到用户)和条件(在哪里),但是可以在一个选择中进行更改吗?作为双重选择,我想到UNION,因为如果IDN将在两个表中,该行可以重复,我不需要它。但我想再次选择一个。有可能吗?
答案 0 :(得分:1)
我自己想通了,因为用户表中包含了所有用户,我会从更复杂的条件中获取所有用户。第一次测试很顺利。如果您看到错误或有更好的变体,请分享)))谢谢。
$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'
");