ホームページ >バックエンド開発 >PHPチュートリアル >mysql クエリに関する質問です。オンラインで待機するとすぐに投稿できます。

mysql クエリに関する質問です。オンラインで待機するとすぐに投稿できます。

WBOY
WBOYオリジナル
2016-06-23 14:19:14966ブラウズ

mysql テーブル設計クエリ

混乱していてこの曲がり角を回避できません ヘルプ

2 つのテーブルがあり、t1 テーブルにはデータが保存され、t2 テーブルには t1 テーブルのフィールドの中国語名が保存されます

t1



t2 テーブル



ここで、t1 テーブルの (1,2,3,4,5) のレコード ID の各フィールド値の合計を求め、フィールド名を置き換える SQL ステートメントを書きたいと思います。 t2 テーブルの中国語フィールド名
の対応するものと組み合わせます。結果は
array(
"攻撃時に付加" => 6,
"クリティカル効果" => 7,
....
) と同様になります。

ステートメントはどのように書けばいいですか? 元々は難しくないと思っていましたが、突然首が窮屈になってしまいました

テーブルのデザインに問題がありますか?
ディスカッションへの返信(解決策)

結果の配列とテーブルが見えません データの対応関係は何ですか?

申し訳ありませんが、結果の配列を適当に書いてしまい、正確に値を計算していませんでした。書き換えます

array(
"攻撃時に追加の $n ポイントのダメージ" =>24,
"1 秒あたりの体力回復 $n ポイントの増加"=>48,
"クリティカル ダメージの増加 $n"=> ;27,
"装備レベルが $n 減少しました"=>6,
"ゴールド コインのドロップが $n 増加しました"=> " クリティカル ダメージが 27 増加しました",
0=> "装備レベルが 6 減少しました" ,
0=> "ドロップする金貨が 100 増加します"
)
でも、それは考えられません...このデザインには何か問題があるかもしれません

array(
0=> "攻撃時に追加の 24 ポイントのダメージ" 、
1=> "体力回復が 1 秒あたり 48 ポイント増加"、
2=> "装備レベルが 6 減少"、
4=>コインドロップが100"増加しました
)

上に0を書くのは間違いです...

48は43でなければなりません... ウォーターフォールカーン...

select sum(col1),sum(col2),sum(col3) ),sum(col4),sum(col5) from t1 where id in(1,2,3,4,5);

この方法では、5 つの Col フィールドの合計をクエリできますが、その後の更新は不定期になります。そしてそれはハードコーディングすることしかできないようです。

select sum(col1),sum(col2),sum(col3),sum(col4),sum(col5) from t1 where id in(1,2,3,4,5);

この方法では、次のことができます。 query 5つのcolフィールドの合計ですが、その後の更新は不定期で、ハードでしか書き込めないようです。

これは方法ですが、 Col

時計のデザインに何か問題があるように感じます。これは m2m の関係であり、通常は 3 つのテーブルが設計されます。

ゲーム内の武器の追加属性としての説明は、おおよそ理解できます:

表 a: 武器表
ID 名
1 A

表 b: 属性表

ID 説明
1 攻撃追加 n
2 体力回復 n

表c: 武器属性マッピングテーブル
id a_id b_id n
1 1 1 24

2 1 2 30

テーブル c のデータは、武器 A の追加攻撃が 24、体力回復が 30 であることを示しています


個人的な意見です!嫌ならスプレーしないでください!

時計のデザインに何か問題があるように感じます。これは m2m の関係であり、通常は 3 つのテーブルが設計されます。
ゲーム内の武器の追加属性としての説明は、おおよそ理解できます:
表 a: 武器表
ID 名
1 A
表 b: 属性表
ID 説明
1 攻撃追加 n
2 体力回復 n

表c: 武器属性マッピングテーブル
id a_id b_id n
1 1 1 24
2 1 2 30

テーブル c のデータは、武器 A の追加攻撃が 24、体力回復が 30 であることを示しています

個人的な意見です!嫌ならスプレーしないでください!

これはゲームの属性です。各機器の属性を 1 つのレコードにまとめました。わかりませんが、3 つのテーブルを検討します。 form...

そのステートメントは、各項目の合計をクエリするというものです

この方法は不可能ではありませんが、フィールドが 100 個ある場合、このように書くのはあまり適切ではないように感じます... コマンドがあると思いましたbefore すべてのフィールドの合計を直接かつ自動的に見つけることができます

結果は「クロス集計」です
t2 からクエリ命令を組み立てる必要があります
ストアド プロシージャまたは php を使用できます

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。