0

データベースからいくつかの行を抽出するために使用するこのクエリをここに用意してください。

$rs = mysql_query("SELECT u.*, SUM(c.ts) AS total_sum1, SUM(m.bv) AS total_sum 
FROM users u 
LEFT JOIN 
 (SELECT user_id ,SUM(points) AS ts FROM coupon GROUP BY user_id) c 
 ON   u.user_id like'%$search%'
LEFT JOIN 
 (SELECT user_id ,SUM(points) AS bv FROM matching GROUP BY user_id) m 
ON u.user_id=m.user_id 

GROUP BY u.user_id limit $offset,$rows");

この条件を満たす行のみを照会するように変更する必要があります。

u.user_id like '%$search%'

上記の条件はどこに置くべきですか?AND 演算子を追加しようとしましたが、user_id が互いに異なるため、まだ 1 行になりません。

ありがとう

4

2 に答える 2

0

WHEREその条件を追加するには、句を追加する必要があります。

$rs = mysql_query("SELECT u.*, SUM(c.ts) AS total_sum1, SUM(m.bv) AS total_sum 
FROM users u 
LEFT JOIN 
 (SELECT user_id ,SUM(points) AS ts FROM coupon GROUP BY user_id) c 
 ON   u.user_id like'%$search%'
LEFT JOIN 
 (SELECT user_id ,SUM(points) AS bv FROM matching GROUP BY user_id) m 
ON u.user_id=m.user_id 
WHERE u.user_id like '%$search%'
GROUP BY u.user_id limit $offset,$rows");

補足:

  • ライブラリは非推奨です。PDOや MySQLimysql_*などの最新の API へのアップグレードを検討してください
  • 変数を SQL に連結するよりも、パラメータがバインドされたプリペアド ステートメントを使用することをお勧めします。プリペアド ステートメントは、エスケープについて心配する必要がないため、はるかに安全で使いやすくなっています。
于 2013-08-02T08:33:39.730 に答える