質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

2回答

2380閲覧

Ruby on Railsでの任意カラムのテーブル結合

退会済みユーザー

退会済みユーザー

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2017/09/05 16:32

編集2017/09/08 12:30

Ruby on rails4、MySQLにて開発しております。
以下のようなテーブルの結合を行いたいと思っているのですが、うまくいきません。

ruby

1class CreateAAAtbl < ActiveRecord::Migration 2 def change 3 create_table :aaatbls do |t| 4 t.string :name 5 t.integer :cate_id 6 belongs_to :catetbls 7 end 8 end 9end 10 11class CreateCatetbl < ActiveRecord::Migration 12 def change 13 create_table :catetbls do |t| 14 t.string :name 15 has_many :aaatbls 16 end 17 end 18end

###やりたいこと
aaatblsのcate_idと、catetblsのidで結合。

SQL

1SELECT * FROM aaatbls JOIN catetbls ON aaatbls.cate_id = catetbls.id;

###やってみたこと
生のSQLを書いてみましたが、なぜかid同士で結合され、書かずにうまくいく方法はないか探しております。
詳しい方ご教示いただけないでしょうか。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

class CreateAAAtbl < ActiveRecord::Migration def change create_table :aaatbls do |t| t.references :catetbls, null: false #ここにcatetblsのidが入る t.string :name end end end
class AAAtbl belongs_to :catebl end class Catetbl has_many aaatbl end

以上で1対多の関係ができますよ。

投稿2017/09/08 13:42

Ryuto

総合スコア206

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/09/12 12:28

ありがとうございます!無事できました!
guest

0

結合というのは1対1のリレーションを実現したいということでしょうか?

1対1の関係とは?
簡単にまとめると、catetblsテーブルのidとaaatblのidが同一のidとなる関係のことです。

1対1の関係を作る方法を記述します。
migrationファイル

class CreateAAAtbl < ActiveRecord::Migration def change create_table :aaatbls, id: false do |t| t.integer :id, nill: false #ここにcatetblsのidが入るようにする。 t.string :name end end end

model

class AAAtbl self.table_name = 'aaatbls' self.primary_key = :id belongs_to :catebl, foreign_key: 'id' before_create { self.id = self.worker.id } end class Catetbl has_one aaatbl, foreign_key: 'id' end

これで1対1の関係が作れます。

投稿2017/09/07 22:51

編集2017/09/07 22:54
Ryuto

総合スコア206

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/09/08 12:29

ご回答ありがとうございます。 記載漏れしておりました。1対1の関係ではなく、1対多の関係となります。
Ryuto

2017/09/08 13:43

1対多の関係ですか。。。 新しい回答出しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問