MySQLで特定のキーを含む画像のプライマリキーを取得する方法

このQ&Aのポイント
  • MySQLのバージョン3.23.58を使用しています。特定のキーを含む画像のプライマリキーを取得する方法について教えてください。
  • 画像に何が写っているかを示すテーブルを作成しましたが、特定のキーを持つ物を含んでいる画像のプライマリキーを取得したいです。
  • さらに、特定のキーを持つ物しか含んでいない画像のプライマリキーも取得したいです。どのようなクエリを実行すればよいでしょうか?
回答を見る
  • ベストアンサー

画像に何が写っているかを示すテーブルを作ったのですが。。

画像に何が写っているかを示すテーブルを作りました。 img_priは画像のプライマリキー、 object_priは写っている"物"のプライマリキーです。 テーブルは以下です。 img_pri | object_pri --------------------- 3    |      4 3    |      7 3    |      8 5    |      4 5    |      7 6    |      1 8    |      5 例えば一行目は、3というプライマリキーを持つ画像に 4というプライマリキーを持つ"物"が含まれています。 このとき、4と7のプライマリキーを持つ"物"を含んでいる画像のプライマリキー(上のテーブルだと3と5) を取得したいのですがどうすれば良いでしょうか? また、4と7のプライマリキーを持つ"物"しか含んでいない画像のプライマリキー(上のテーブルだと5) を取得したいのですがどうすれば良いでしょうか? MySQLのバージョンは3.23.58です。 どなたかご指導お願いいたします _ _

  • wnsml
  • お礼率49% (41/83)
  • MySQL
  • 回答数1
  • ありがとう数1

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

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

「画像を管理する表」と「物を管理する表」が別にあり、画像と物をマッピングする表が、データ例が示された表ということですか? この表では、ユニークになるキーがないのでしょうか?この表に対し、どういう検索パターンがあるのか分かりませんが、特定の行を一意に定めようとする場合などで、不都合が生じるかも知れません。 >4と7のプライマリキーを持つ"物"を含んでいる画像のプライマリキー(上のテーブルだと3と5) を取得したい 【SQL例1】 select img from t1 where obj in(4,7) group by img having count(distinct obj)=2 ; >4と7のプライマリキーを持つ"物"しか含んでいない画像のプライマリキー(上のテーブルだと5) を取得したい MySQL 3.23の環境がないので実機確認できませんが、1SQLではできないと思います。 【SQL例2】 create temporary table wt1 (img int, obj int); insert into wt1 select * from t1 as y where obj not in(4,7) ; select x.img from t1 as x left join wt1 as y on x.img=y.img where y.img is null group by x.img ; drop temporary table wt1;

wnsml
質問者

お礼

できましたー!!!! nullを使って数えるのは全く思いつかなかったです。。 例2の方は、having count(*) = 2を付け足すことで正常に動作いたしました。(4 | 4のようなレコードが加わってしまうのを防ぐため。例1が参考になりました _ _) 本当にありがとうございました~。

関連するQ&A

  • 画像を使ったテーブルで隙間ができてしまいます

    画像を枠に使ったテーブルをHTMLで作成し、FC2ブログに載せています。 Chrome上ではうまく表示されるものの、IE、Firefoxでは Rowの上に隙間ができてしまい、枠画像が正しく表示されません。 ----------Tableの基本構造---------- <table cellspacing="0" cellpadding="0" border="0" width="x" height="y" bgcolor="#FFFFFF"> <tr><td><img src="左上角"></td> <td><img src="上部"></td> <td><img src="右上角"></td></tr> <tr><td width="15"><img src="左1列目"></td> <td style="color:# … ;"> 内容1</td> <td width="15"><img src="右1列目"></td></tr> <tr><td width="15"><img src="左2列目"></td> <td style="color:# … ;"> 内容2</td> <td width="15"><img src="右2列目"></td></tr> <tr><td><img src="左下角"></td> <td><img src="下部"></td> <td><img src="右下角"></td> </tr></table> -------------以上-------------- 上記のものよりも実際は行と列を増やしておりますが、基本的に増殖しているだけです。 1行目と2行目の間に隙間ができて縦の画像枠が細切れになっています。 隙間ができているのは行の下ではなく、上の部分のように見えます。(背景色の見え方などから) テーブルのみの上記コードは、ローカル環境ではIEでも正しく表示されるため、 ブログにアップした際乱れるのは、スタイルシートの影響かと考えております。 自分でそれらしいところをいろいろ設定をいじりましたが改善しません。 ということで、 ≪スタイルシートの設定で、画像を枠に使ったテーブルの隙間に影響を与えうる要素≫ が何が考えられるか教えて頂ければと存じます。 なお、使っているStyle Sheetは以下のものですが、 http://blog-imgs-30-origin.fc2.com/w/m/k/wmks/wm_gienah_R.html TableにかかわるStyle部分はコメントアウトしましたので、テーブル自体のスタイルは 適用されていないはずです。

    • ベストアンサー
    • CSS
  • テーブル内の画像を横並べにしたい

    HTMLテーブルの学習中の初心者です、よろしくお願いいたします。 テーブル内に画像を配置すると縦並びになってしまいます。 これを横並びにしたいのですが、(添付画像参照ください) 同じテーブルの上段には既に列を分けてある1行目があります。 問題の2行目、列を分けてそれぞれのセルに画像を当て横幅を指定 という方法ですと上段の横幅に揃ってしまうのか、幅が大きく広がり過ぎてしまいうまくいきません。 テーブル以外にも方法はあるようなのですが 現在テーブルの学習をしているためテーブルでのやり方を調べています。 初心者ですので解りやすいもっともシンプルなやり方ございましたら ぜひご指導お願いいたします。

  • 「MUL」とは

    mysqlツールで、テーブル情報を閲覧し疑問がわきました。 KEY項目欄で、「MUL」と表示されているのですが、これはどのような意味でしょうか。 「PRI」はプライマリキーと理解できるのですが。 初歩的な質問で申し訳ありませんが、よろしくお願い致します。

  • テーブル内の画像を上寄りにしたい

    こんにちわ、質問させてください。 <td width="300" height="300"><img src="img/#####.jpg" width="300" height="100" /></td> 上記のように300×300のテーブルの中に300×100の画像を表示させたのですが、上下側の中央に表示されてしまいます。 この画像を上寄りにさせたいのですが、やり方が何かありませんでしょうか? 左右側では左・中・右の表示させ方は分かるのですが・・・ 現在は画像の下部に改行を入れて画像を無理矢理上へ寄せています。 もっと良いやり方があればと思いご相談します。 CSSを使ったやり方とかあればそちらの方でもお願いします。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • テーブルに画像を入れると、テーブルの幅が広がってしまいます

    HTML初心者の者です。 3行2列のテーブルを作り、左側の列に縮小した画像を入れたのですが、左側の列が画面いっぱいに広がってしまい、画像の幅に合わせて幅を狭くすることが出来ないでいます。 どうしたら、画像の幅に合わせて左列の幅を狭くすることが出来るでしょうか。 その部分のHTMLは、以下の通りです。 <table border="0" align="center"> <tr> <td><img src="*****.jpg" width=20% align="right"> </td> <td>説明文・・・・</td> </tr> <tr> </td><img src="*****.jpg" width=20% align="right"> </td> <td>説明文・・・・</td> </tr> <tr> </td><img src="*****.jpg" width=20% align="right"> </td> <td>説明文・・・・</td> </tr> </table>

    • ベストアンサー
    • HTML
  • データーベースのすべての画像を取り出したい

    データーベースのテーブル内の画像をすべて取り出すプログラムを書いています。 データベース(Mysql)には画像が4列(4個)存在しますがプログラムの書き方が悪いと思うのですが、1つしか画像を取り出すことができません。 すべて取り出すにはどこを直せばよいでしょうか? 書いたソースは以下になります。 たぶん$img_db=$row["img_data"]; echo $img_db;が原因のような気がしますが分かりません。 詳しい方教えてください。 <display.php>(データーベースから読み込みようphp) <?php $conn=mysql_connect("localhost","root",""); mysql_select_db("practice"); $result = mysql_query("select img_data from sample "); while($row= mysql_fetch_array($result)){ $img_db=$row["img_data"]; echo $img_db; } ?> <output.php>(ブラウザ表示用php) <html> <head> <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8”> <title>画像表示</title> </head> <body> <p>MySQLのBLOBにバイナリで格納した画像を表示してみます。</p> <?php echo "<img src=\"display.php?$img_db\">" ?> </body> </html>

    • ベストアンサー
    • PHP
  • テーブルの隙間を無くしたい

    DreamWeaverCS4を使いホームページを作成しております。そこでテーブルについて、狙い通りに上手く表示が出来なくて困っております。どなたかご指導アドバイスをお願い致します。具体的な内容は下記のとおりです。 ・テーブルを「7列2行(全体の大きさは横700px×縦100px)」で作成し、内訳は1行目は、一枠横100px×縦50pxの大きさで7枠作成。2行目は横700px×50pxで作成。 上記内容のテーブル1行目に横100px×縦50pxのサイズの画像を7つ挿入。そして2行目には横700px×縦50pxの画像を1つ挿入しました。 そしてテーブルの設定は「ボーダーは0」です。 しかし、画像挿入後には2行目の画像横700px×縦50pxが入っているテーブルに隙間が出来て背景が見えてしまいます。1行目を見ると…微妙に各画像間の間に隙間が空いていて、この隙間が全体的に700pxを超えているようなんです。それで、2行目の画像に対して背景が見えて(テーブルの幅が広がってしまっています)いるのです。 そこでですが、画像を配置後にテーブルの隙間をきっちりと無くして背景が見えなくする方法ってあるのでしょうか? 解る方がいましたら…ご指導…アドバイスをお願い致します…。よろしくお願い致します…。

    • ベストアンサー
    • HTML
  • テーブルのセルに画像をピッタリ表示するには

    よろしくお願いします。 テーブルの以下のタグ並びで、 <img src=>の部分の画像jpgを、枠にピッタリ表示したいのです。 以前作った他のhtmlファイルでは、画像のサイズに変化があっても、自動的に枠にピッタリ表示でき、 同じ通りタグを書いたはずなのですが、 なぜか?今回は、この画像が、 一行二列目の枠(これが大きくなってしまう) のその左端寄りに、幅よりも小さく浮いたように表示されてしまいます。(枠の右側に不要な余白ができてしまう) 枠や画像のサイズを固定しても同じです。 この画像の枠以外は、画像ではなくテキストです。 うまくいかないのはなぜなのでしょう? どこに間違いがあるのでしょうか、教えてください、お願いいたします。 <table width="85%"border="1" cellpadding="5" cellspacing="5" align="center"> <tr><td>一行一列目     </td> <td rowspan="3">1行二列目~ココの部分~<img src="" width="" height="" align="center" valign="top" alt=""> </td></tr> <tr><td>2行一列 </td></tr> <tr><td>3行一列 </td></tr> <tr><td>4行一列目 </td> <td>4行二列目 </td></tr> <tr><td colspan="2">5行一列           </td></tr> <tr><td colspan="2">6行一列           </td></tr></table>

    • ベストアンサー
    • HTML
  • スライドさせてテーブルの下に画像を・・

    初心者です。 いろいろと調べたり、詳しい友人に聞いたのですがうまくいきません。 右上に画像を固定し、左側にテーブル(2列、30行)を配置しました。 画面がフル表示の時はキレイに配置されているのですが、左側に「お気に入り」のバーが現れたり画面を少し小さくすると、テーブルが画像の上にスライドせずに押し出されてどんどん改行され、ひどいことになってしまいます。うまく画像の上にまでスライドさせる方法はありませんでしょうか? ちなみにYahooのジオシティ使用です。 教えてください!!

    • ベストアンサー
    • HTML
  • Java アプレットで画像をコピーして配置

    Javaアプレットでなのですが、画面上に自分で持っている画像をコピーして配置したいです。 http://oshiete1.goo.ne.jp/qa2452081.html​ のソースを参考にさせて頂いたのですが、 コピー元のオブジェクトを自分の持っている画像(アイコン)にしたいです。 Path指定をするとできるのかなと思っていて、以下の2行を加えてみたのですができません。 img[0] = getImage(getDocumentBase(), "../../img/01.jpg"); g.drawImage( img[0],20,20, this ); ご教授よろしくお願いします。

    • ベストアンサー
    • Java