2011-08-11 1 views
0

私は2つのテーブルを持っています。クエリ中にPHPを実行するには?

  1. お客様
  2. 受注

私はすべての顧客のための最新の順序を見てみたいです。私はこれを2つの異なるクエリを使って行っています:

$sql = "SELECT * FROM Customers"; 
$rslt = mysql_query($sql); 
WHILE($row = mysql_fect_object($rslt)) 
{ 
    $sql_order = "SELECT * FROM Orders WHERE customer_id = $row->customer_id 
       ORDER BY DESC LIMIT 0,1"; 
    ................ 
    ................ 
} 

出力は完璧ですが、私はPHPコードを書く必要があります。

PHPコードの助けを借りずにクエリ結果を出力することはできますか?アドバンス

+0

そしてあなたは叫ぶ必要はありません。 Rly? – GolezTrol

答えて

0

短い答えで

ありがとう:いいえ

データベースには、すべてのデータが含まれています。 PHPコードは特定のデータのまとまりを要求し、それを人間が判読できる形式にフォーマットする必要があります。 PHPの量は最小限に抑えることができますが、必要になります。

+0

T-SQLはどうすれば問題を解決できますか、ご返信いただきありがとうございます。結合を使用して両方のクエリを実行できませんか? – Sarfaraj

+0

ああ、はい、あなたは、クエリに参加することができますが、あなたはループなしで行うことができますが、あなたはまだ結果を出力するPHPが必要になります。たぶん私はその質問を誤解したでしょうか? – GolezTrol

0

あなたは、PHPがインストールされていない場合は、直接プロンプト

echo "SELECT * FROM Customers" | mysql database_name -uusername -ppassword 

からMySQLへの問合せは、あなたを組み合わせること

パイプを[2011-08-11 11:30更新]することができますbashスクリプトで上記2つのquerys:

echo "SELECT customer_id FROM Customers" | mysql database_name -uusername -ppassword | xargs -I "{}" echo "SELECT * FROM Orders WHERE customer_id = {} ORDER BY DESC LIMIT 0,1" | mysql database_name -uusername -ppassword 

以上可読バージョンは、聖霊降臨祭rowbreaks

パイプを交換しました
+0

私の質問を読まなかったと思います – Sarfaraj

+0

「PHPコードの助けを借りずにクエリ結果を出力できる方法はありますか? –

+0

大変ありがとうございます。私の問題を解決するための質問例がありますか? – Sarfaraj

0

あなたは、単一のクエリ内の各顧客のために、最新の順序を取得したい場合は、あなたが使用できます。あなたが「.date」を交換する必要があるかもしれ

SELECT Orders.* 
FROM Orders 
LEFT JOIN Orders AS newer_orders ON (newer_orders.customer_id = Orders.customer_id AND newer_orders.date > Orders.date) 
WHERE newer_orders.customer_id IS NULL 
ORDER BY Orders.customer_id 

をソートするためにあなたが使用したい列を聖霊降臨祭あなたの質問であなたはそれを見逃してしまった "ORDER BY DESC"

クエリは、テーブルwhitそれは自分自身のコピーを自分自身の新しい顧客と同一のcustomer_idで注文し、そしてどこで私は行をフィルターにかける最新のものはありませんので、最新のものだけを表示してください。

+0

の助けを借りてMYSQLブラウザ上で実行される新鮮なクエリを探しています。ありがとう、たくさんありがとう – Sarfaraj

+0

同じクエリで顧客の詳細を追加したいのですが? – Sarfaraj

+0

このクエリー – Sarfaraj

関連する問題