2012-01-24 14 views
0

私のサイトには、アクションを結合したい友達フィードがあります。今のところ、あなたの友人が検索したものだけを返します。しかし、同じフィードに自分が好きなものを表示して、検索やお気に入りのフィードを時間順に並べ替えることもできます。2つの異なるMySqlクエリから2つの異なる配列をマージする

問題は、私はこれに取り組むための良い方法を見つけることができないということです。私は(検索テーブルとお気に入りのテーブルから)引っ張っている2つのテーブルは、同じ数のカラムを持たないので、私は別のカラムを必要とするため、MySql UNIONを使用することはできません。

私はJOINを調べましたが、すでに検索結果を返すために2つのテーブルを結合しているので、難しいです。

私は何を考えていたのですか?2つのクエリを別々に行い、出力を配列として取得し、時間列に基づいてPHPと組み合わせる方法はありますか?

+0

それはほぼ確実にcustomer1 組合 選択名からの電子メールとして「」、簡単かつ –

答えて

0

はい、2つのクエリを別々に実行し、出力を配列として取得し、それらをphpと組み合わせることは可能ですが、そうしないといけません。あなたは、あなたが検索やお気に入りを十分に持っていないことに気付いたら、維持できないコードの混乱まで自分自身を開きますが、好き嫌いや投稿も必要です。

私の提案は次のとおりです。すべてのテーブルについては

  • 、対応するビューを作成し、 構造を共有するすべてのビューなど。私は 他の言語のInterface/Implementationパターンを模倣しています。 SELECT * FROM searches_view WHERE ... UNION SELECT * FROM favorites_view WHERE ... ORDER BY date_submitted DESC

あなたのアプリが頼ることができるこの方法を:あなたのビューの構造は、あなたが

  • はインターフェイス間であなたの複合クエリーを実行します。必要なものは何でも、タイムスタンプ、記述欄、ユーザーにIDを、などがあることを確認してください"searches_view"などで検索するための標準化された "インターフェース"を提供します。その結果、より多くのアイテムタイプへの拡張が簡単です。

  • +0

    からのメールこれは良いアイデアです。間違いなく組織と機能性に優れています。ありがとう! – Michael

    1

    列番号を一致させることはできません。空白の列を空白に追加したり、それらの行に沿って空白を追加したりすることはできますか?

    +0

    選択名の参加データベースを使用してそれをやってよりeffecientになるだろう、customer2 –

    関連する問題