07/12/11 19:00:59
何のための外部キーなのだ
554:NAME IS NULL
07/12/12 00:13:05
>>552
set foreign_key_checks=0;
おすすめはしない。
555:NAME IS NULL
07/12/12 02:17:14
夜だからかちょっと混乱してるかもです…
ショッピングカートのデータベースです。
user,shopcartというテーブルがあり、それぞれ
-user
userid int(11)
name varchar(64)
-shopcart
userid int(11)
goodsid int(11)
price int(11)
accounted int(1) #0:未清算,1:清算済み
となっています。(実際はもっと複雑で違った用途ですが…)
このとき、
未清算(accounted=0)で、価格が10,000円以上(price>10000)の商品が
買い物かごに入っているユーザの名前を検索するのは
どういったSQL文を書けばいいのでしょうか。
556:NAME IS NULL
07/12/12 02:36:02
違った…これじゃすごい単純だ
SELECT name from INNER JOIN shopcart ON user.userid = shopcart.userid WHERE shopcart.price>10000 & shopcart.accounted = 0
でいけたわ
必要なのは
「未清算(accounted=0)で、価格が10,000円以上(price>10000)の商品が
買い物かごに入っている」
かつ
「清算済み(accounted=1)で、価格が10,000円以上(price>10000)の商品が
買い物かごに入っている」
ユーザの名前を検索するSQL文でした
お騒がせしてます
557:NAME IS NULL
07/12/12 03:14:43
>>556
まだおかしい
条件をよく見直すよろし
558:NAME IS NULL
07/12/12 03:31:25
priceは除いても必要な構文は同じなので除外します。
日本語で言うと
「未清算の商品と清算済みの商品がそれぞれ1点以上カートに入っているユーザの名前」となります
つまりまとめてみると
『shopcartに userid=x AND accounted=1 なレコードがあり、かつ
shopcartに userid=x AND accounted=0 なレコードがある』
という条件を満たすuserid=xに対応するnameを求める
ということです。
ん?おかしい?
GROUP BYでもいける気もする
559:NAME IS NULL
07/12/12 03:38:11
これでどうか
select u.name from
(select distinct userid from shopcart where accounted=0 and price>=10000) a,
(select distinct userid from shopcart where accounted=1 and price>=10000) b,
user u
where a.userid=b.userid
and a.userid=u.userid;
560:NAME IS NULL
07/12/12 03:40:05
>>559
みゃー
サブクエリ(?)でしたか
未知の領域ですががんばって勉強します
ありがとうございました
561:NAME IS NULL
07/12/12 04:00:45
having を使ってうまいこと書けないかと思ったが
眠いのでネルス
562:NAME IS NULL
07/12/12 21:07:36 5IOTZHnS
mysqlの管理用にphpMyadminを触っています。
インストールの過程で要編集とあるconfig.inc.phpの項目が自分のpmaの
バージョンでは存在しません
自分のバージョンは2.11.3で、存在しない項目は以下のとおりです
$cfg['Servers'][$i]['user'] = '';
$cfg['Servers'][$i]['password'] = '';
$cfg['PmaAbsoluteUri'] = '';
どうしたらいいでしょう?
URLリンク(www.shiftweb.net) を参考に作業してます
ここで質問していいのか不安でしたがお尋ねしました お願いします
563:NAME IS NULL
07/12/12 21:41:40
MySQLのばーじょn
564:NAME IS NULL
07/12/12 23:08:20
Mysql administratorでUTF-8で保存した日本語が文字化けるんだけど、対応してない?
MySQLは5です。
565:NAME IS NULL
07/12/12 23:18:42
>>562
そのページは phpMyAdmin 2.5.6 向けに書かれているみたいだから
書かれている通りに作業を進めていってもうまくいかないと思うよ。
(認証メソッドもクッキー認証のままだろうし)
面倒くさいかもしれないけど、設定ファイルに書かれている項目を
一つひとつ理解しながら進めるのがいいと思う。
あるいは最新版にも使えそうな別の解説ページを探すとか。
566:NAME IS NULL
07/12/12 23:45:56
>>565
そうみたいですね
2.5.6を落として入れてみたんですが、それも上手くいきませんでした。
実は壊れたマシンの中じゃ動いてたんだけど、こういうのって
上手く動作したらすぐにそのバージョンや手順をメモっておくべきなんでしょうね
失敗したなぁ;; ありがとうございました
567:NAME IS NULL
07/12/13 01:16:04
あとそのときのバージョンのインストールパッケージ一式残しておくこと
いつまでもダウンロードできるとは限らない
568:NAME IS NULL
07/12/13 10:31:56
CPUの交換を行って、CPUの性能が上がったのに
データアクセスが遅くなりました。
CPUを交換したら、Mysqlの再インストールが必要な場合があるんでしょうか?
569:NAME IS NULL
07/12/13 13:47:58
>>568
おいおい、当たり前でしょ。システムの主要部分の構成を変えているのに、
そのままで運用する気かよ。
570:NAME IS NULL
07/12/13 15:39:20
>>569
返答ありがとうございます。
やっぱりMysqlをインストールする時にそのマシンの
構成によって何かしらの変化があるって事なんですね?
再インストールすれば大丈夫でしょうか?
素人ですいません。。。
571:NAME IS NULL
07/12/13 15:42:27
バイナリの再インストールなら変わらないんじゃないの?
572:NAME IS NULL
07/12/13 18:03:30
とりあえず、
URLリンク(ossipedia.ipa.go.jp)
573:NAME IS NULL
07/12/13 18:26:59
MySQL5.0.30未満+InnoDBの環境だと、
CPUのコア数増やすと返って遅くなる場合があるよ