2017-03-03 5 views
-1

タイトル、価格、..とuser_idのような列をfkとして持つ提案と呼ばれるテーブルがあり、すべての提案にはsuggestion_imagesテーブルに格納されている私は1つの提案を取得したい場合は、それは私がこのクエリ無駄な行を生成しないで2つのテーブルを結合する方法

SELECT sg.title , sg.price,sg.detail , sg.created_at , 
     user.name , user.phone , sg_image.url 
    from sg 
    join user on user.id = 16 
    JOIN sg_image on sg_image.sg_id=sg.id 
    where sg.id = 13 ; 

を使用絵だと私は提案のテーブルとuser_tableに参加し、私の問題は、提案は3イメージを持っている場合、それは3行は、同じでね作るあるテーブルをsuggestion_imagesデータはちょうど異なるイメージ..それで、1つの提案を得るための方法はありますか?または私はそれらを別々に問い合わせるべきですか?または多分私のデータベースdisignは間違っていますか?

編集

これは私の提案テーブル

IDです| user_id |タイトル|価格|詳細|完了|アクティブ| track_code | created_at

とこの私の提案画像テーブル

id | URL | |私は、それがその行の嘘で

IDイメージですwiths提案を取得したい

をsg_idタイトル|価格|詳細| created_at | url_1 | url_2 | ....

+2

何データベース設計?テーブル作成ステートメントといくつかのサンプルデータをデータの挿入ステートメントとして表示してください.1)は問題を示し、2は出力として期待しています。もし私があなたを助けたいのであれば、あなたの説明からテーブルを設計し、テストデータでそれらを埋めることは望ましくありません。あなたはすでにこれを持っていますか?私はダイアグラムを望んでいません - 私はインポート、コピー、貼り付けができるコードを望みます。テスト:私はテーブルを作成してコードからロードするのに5分以上を費やしたくありません。私はSQL IDEと完全なテストセットアップを持っています。 –

+0

@RyanVincent dude私の質問を更新しました。より明確に –

+2

テーブル定義をコピーできますか?それはMysqlでテーブルを作成しますか?いいえ、テストデータの挿入をそのテーブルにコピーできますか?いいえ。クエリの期待結果がどのようなものか分かりますか?いいえ。助けたい?または、私たちがあなたの手助けをする前に、テーブルの作成とテストデータの作成に時間を費やすようにしてください。それが明らかでない場合。私たちのほとんどはクエリを実行する必要があり、私たちはそれらを間違って取得します。それから、必要なことをするまで繰り返します。はい、あなたとまったく同じプロセスを経ます。うまくいけば、速い? –

答えて

1
SELECT sg.title , sg.price,sg.detail , sg.created_at , 
     user.name , user.phone , 
     (SELECT GROUP_CONCAT(url) 
      FROM sg_image on sg_id=sg.id) 
    from sg 
    join user on user.id = 16 
    where sg.id = 13 ; 

(あなたJOINuserにはかなり奇妙である。)

+0

tanx私はこの答えを受け入れるが、私は2つの質問がある。何がユーザーの参加に間違っていると思いますか?グループ連絡先は、それらの間に(、)を付けて行全体を作成しますが、どのように分割することができますか? –

+1

'GROUP_CONCAT'はあなたに広い列を与えます。書式設定はMySQLの責任ではなく、アプリケーションの責任であるため、コンマで区切る必要があります。 –

+1

'JOIN user'は「クロスジョイン」なので奇妙です。 msgstr "IDが16のすべてのユーザはすべてIDが13のsgです。" –

関連する問題