• ベストアンサー

Sqliteのリレーション

■利用環境 Sqlite3.3.5 データベース初心者で、 リレーションの概念等、理解出来てない 質問になってましたらすみません。 現在、テーブルを作成する事くらしかできません。 ■質問 Sqliteのテーブルプログラムから、 SQL関数を使ってつくっているのですが、 リレーションの設定の仕方がわかりません。 ■説明 Aと言うテーブルとBと言うテーブルがあるとき useridを主キーとして、お互いにリレーション を作るには、どのようにSQLを書けばよいですか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

単純な関係なら、ジョインするだけです。 select ~ from A,B where A.userid=B.userid

akaginoyama
質問者

お礼

回答ありがとうございます。 データを選択するときにテーブル同士をつなげ扱う と言うことですね。 私の思ってたリレーションのイメージが間違っていた様です。 頂いた処理をまず、試してみます。

関連するQ&A

  • Sqliteリレーションについて2

    連続投稿すみません。 ■利用環境 Sqlite3.3.5 ■質問 リレーションの概念について、理解できない部分があり 質問させてください。 下記のようなテーブルが1:Nのリレーション関係 にあった場合、お互いのテーブルにリレーションを 貼っていれば、テーブルAのある行データを削除した ときに、テーブルBの同外部キーに該当するデータも 連動して削除されるのでしょうか? それとも、自身で削除する必要があるのでしょうか? テーブルA(主キー蔵書ID) 蔵書ID 購入日 書名 テーブルB(主キー貸し出しID 外部キー蔵書ID) 貸し出しID 蔵書ID 貸し出し日 借りた人 

  • SQLiteのデータベースについて

    PHP初心者です。以下のSQLiteより作成するデータベースについて教えてください。 $DB = sqlite_open('db1.db'); $sql="create table tables(id integer ,name,texts)"; $result=sqlite_query($db,$SQL); 上記、プログラムにより、同ディレクトリに、db1.dbが作成されますが、このデータベース情報はどのようにして、閲覧するのでしょうか(MS-ACCESS、SQLのように簡単に閲覧できないのか)。主キーやテーブルの名前またはフィールドの名前の変更、データ一覧閲覧などどのようにするのでしょうか。 環境は、Windows環境で、PHP4を使用しております。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • phpMyAdminの「リレーションを表示する」について

    テーブル間のリレーションについて質問です。 phpMyAdminを使ってMySQLのデータベースにテーブルを作成しています。 今、顧客のテーブル「Customer」と業務のテーブル「Order」があったとして、 ----------------------------------------------------- 【Customer】 [CustomerNo] int型 主キー設定 [CustomerName] varchar_20 [PostName] varchar_20 [Address] varchar_30 [TelNumber] varchar_20 【Order】 [CustomerNo] int型 主キー設定 [OrderName] varchar_10 ---------------------------------------------------- としています。 ここでCustomerテーブルのCustomerNoとOrderテーブルのCustomerNoで リレーションを組もうと思いました。そこでOrderテーブルでリレーションを表示するを選択し、 CustomerNoのフィールドで「Customer -> CustomerNo」を選択し保存するを押したのですが、 「インデックスは設定されていません。 (CustomerNo)」というエラーが帰ってきました。 これはどうすればリレーションを組むことができるのでしょうか? ググッて調べてみたのですが、それっぽい情報が無かったものでして質問をさせていただきました。 どなたか宜しくお願い致します。

  • ACCESSのリレーションが切れてしまいました

    素人で甚だ恐縮ではございますが、社内システムのACCESS2003のデータベースでリレーション定義が無くなってしまい、アプリで削除していないにも拘わらず主たるテーブルのレコードの各項目に"deleted"或いは"#deleted"が入ってしまいました。 リカバリーは、「データベースの最適化/修復」を行い、リレーションを定義していた先のテーブル内のレコードを削除し、再度リレーション定義し再登録にて回復しました。 リレーションが切れる(無くなってしまう)原因がわかりません。 どういったケースで発生しうるかご教示頂ければと存じます。

  • SQlite

    SQLiteを使って メールを保存するデータベースを作っています。 以下のようになっています。  さらに、 アドレス帳を作りたいのですが 新たにデータベースを開くのか 同じデータベースで別のテーブルを開けばよいのかわかりません。 ご存知の方よろしくお願いします。 また、 C++からSQLiteを扱う上での参考書などもありましたら 教えてください。 rc = sqlite3_open(".\\mailbox\\SQMail.db", &db); if( rc ){ AfxMessageBox("Can't open database:", MB_OK); sqlite3_close(db); return; } rc = sqlite3_exec(db, "create table MailTbl (id INTEGER PRIMARY KEY, attach varchar(20), subject varchar(120),addressfrom varchar(80),addressto varchar(80),date varchar(80),size integer,priority integer, read integer, state integer, alldata blob);", callback, 0, &zErrMsg); if( rc!=SQLITE_OK ){ // AfxMessageBox("SQL error:", MB_OK); sqlite3_free(zErrMsg); }

  • アクセスで、1つのフィールドに2つのリレーションをかけると。

    メールのデータベースを作っています。 T_メール本体のテーブル (フィールド項目は) ID(主キー) 宛先名 件名 本文 T_CCリストのテーブル (フィールド項目は) メールID(主キー) ID 宛先名 T_BCCリストのテーブル (フィールド項目は) メールID(主キー) ID 宛先名 これに、T_メール本体のIDとT_CCリストのIDをリレーションさせて さらに、T_メール本体のIDとT_BCCリストのIDをリレーションさせると いうのは可能でしょうか?こうすると、表示は出来ますが、入力及び更新が出来なくなるのですが。 以上、よろしくお願い致します。

  • 外部キーのリレーションが設定できない

    VWD2008でSQLサーバーを使用して簡単な検索DBを作成しようとしています。 元々アクセスのデータベースファイルから SQLサーバーの機能を利用してSQLDBをエクスポートしました。 Shopsテーブルには [id]…主キー(自動採番) [Shop_Code]…販売店コード [Shop_Name]…販売店名 [Shop_Add]…住所 [Shop_AreaID]…Shope_Areaテーブルとリレーションを組む というフィールドが存在します。 Shop_Areaテーブルには [Shop_AreaID]…主キー(自動採番) [Shop_Area_Status]…北海道・仙台・東京・名古屋なとの地域情報が入ります。 ●Shope_Areaテーブル Shop_AreaID  | Area_Status |  ------------------------------------ 01      |   北海道  |   02      |   仙台   |    03      |   東京   |    VWD機能のデータベースダイアグラムより Shopsテーブルの[Shop_AreaID]と Shop_Areaテーブルの[Shop_AreaID]でリレーションを作成し ダイアグラムの保存を試みようとするとエラーダイアグラムが表示されてしまいます。エラーメッセージは以下の通りです。 テーブル 'Shop_Area' は正しく保存されました。 テーブル 'shops' - リレーションシップ 'FK_shops_Shop_Area' を作成できません。 ALTER TABLE ステートメントは FOREIGN KEY 制約 "FK_shops_Shop_Area" と競合しています。競合が発生したのは、 データベース "C:\....\091111_DATA.MDF"、テーブル "dbo.Shop_Area", column 'Shop_Area_ID' です。 上記のようなエラーメッセージが出力される場合 どういった理由が考えられるのでしょうか。 色々試してみたのですがリレーションを設定することができません。 どうか教えてください。

  • リレーションをSQL文で作る方法は?

    urizakaです 今まではSQL-Serverを使っていたのですが、今度からPostgresSQLを使うこと になりました。 さて、そこで質問なのですが、SQL文でテーブルを作るとき、他のテーブルの カラム(フィールド)と作ったテーブルのカラム(フィールド)のリレーションを 作るにはどうすれば良いのでしょうか? 特に、シリアル型で作ったフィールドの値を外部参照キーとして持ってきたい 場合はどのようにSQL文を書けばよいのでしょうか? すみませんが、よろしくお願いします。

  • SQLiteを始めたけどMySQLを勉強したい

    昨日からSQLを勉強しはじめてPHPでSQLiteでテーブルを作ってSelectしてhtml上で表にするところまでできました(なので超初心者です)。 やっとサイトのひな形ができたので、SQLite対応のレンタルサーバーを探してみたのですが、なんと対応しているサーバーがほとんどありません! 個人使用なので高いレンタル料は無理なので、仕方ないと思い、今後の勉強もあってMySQLを勉強しなおそうかと思っています。 しかし、イマイチconnectとか概念がよくわかっていないのですが、MySQLはそれほど難しいものではないのですか? 本来なら単純な表なのでSQLiteで済まそうかと考えていたのですが、あまりよいSQLite対応サーバーが見つかりませんでした(あれば教えていただきたいです)。

    • ベストアンサー
    • MySQL
  • 環境PHP5 Apache2.0 SQLite

    環境PHP5 Apache2.0 SQLite データベースSQLiteに関する質問なのですが、データベース名、テーブル名のみ解っている状態からテーブルで使用されている項目の一覧などは取得できますでしょうか? データベース名 くだもの テーブル名 くだもの リンゴ バナナ イチゴ  1   3   2  このようにテーブルのみ解っている状態から中身を見ずに項目「りんご」、「バナナ」、「イチゴ」を取得したのです。SQLiteで無くとも、他のデータベースで可能でしたらご教授ください。よろしくお願い致します。

    • ベストアンサー
    • PHP