質問: mysqlでcreate table mysqlでcreate tableをする際に、 プライマリキーを設定する場合は、 create table( aaa char(5) not null, bbb char(5) not null, ccc varchar(10) not null, primary key(aaa) ); のようにすると思うのですが、「bbb」を外部キーにしたい場合は、どうしたらいいのでしょうか?
回答: test1テーブルにaaa(主キー),bbb,ccc列、 test2テーブルにxxx(主キー),yyy,zzz列があると仮定します。 普通にselect文で select xxx, ccc, yyy, zzz from test1,test2 where test2.xxx = test1.bbb ; と問い合わせればリレーション機能が実行されビューに表示されます。 内部結合も外部結合もsqlのデータ操作文(dml文)を使えばいいだけです。 違うテーブルに同じ列名がある場合は、列名の前にテーブル名.が必要です。 同じ列名がない場合は付けても付けなくても構いません。 また、なにか意図があって主キーを2つ設定したいのであれば、 primary key(aaa) の部分を primary key(aaa,bbb) にしてみてはいかがでしょうか? 検索スピードを考えているのであればインデックスを付加するとか。 意味が違っていたらすみません。 ちなみにcreate tableはsqlのデータ定義文(ddl文)です。