タグ付けされた質問 「where-clause」

18
SQL JOIN-WHERE句とON句
それを読んだ後、これは明示的SQL結合と暗黙的SQL結合の複製ではありません。答えは関連している(または同じ)場合もありますが、質問は異なります。 違いは何ですか?それぞれに何を入れるべきですか? 理論を正しく理解していれば、クエリオプティマイザーは両方を同じ意味で使用できるはずです。

7
どこで持つか
MySQL内ではなく、自分で作成した列を(たとえばselect 1 as "number")後に配置する必要があるのはなぜですか?HAVINGWHERE そしてWHERE 1、(列名の代わりに定義全体を書く)代わりに何か欠点がありますか?

6
Where句を使用した左結合
設定テーブルからすべてのデフォルト設定を取得する必要がありますが、x文字に存在する場合は文字設定も取得する必要があります。 ただし、このクエリは、文字が1である設定のみを取得します。ユーザーが誰も設定していない場合、デフォルト設定ではありません。 SELECT `settings`.*, `character_settings`.`value` FROM (`settings`) LEFT JOIN `character_settings` ON `character_settings`.`setting_id` = `settings`.`id` WHERE `character_settings`.`character_id` = '1' だから私はこのようなものが必要です: array( '0' => array('somekey' => 'keyname', 'value' => 'thevalue'), '1' => array('somekey2' => 'keyname2'), '2' => array('somekey3' => 'keyname3') ) ここで、キー1と2は、キー0に文字値を持つデフォルト値が含まれている場合のデフォルト値です。


2
MySQLはwhere句と結合します
結合したい2つのテーブルがあります。 私は、categoryテーブルのすべてのカテゴリと、category_subscriptionsテーブルのユーザーがサブスクライブするすべてのカテゴリが必要です。 基本的にこれはこれまでの私のクエリです: SELECT * FROM categories LEFT JOIN user_category_subscriptions ON user_category_subscriptions.category_id = categories.category_id これは正常に機能しますが、クエリの最後にwhere句を追加すると、本質的に内部結合または等価結合になります。 SELECT * FROM categories LEFT JOIN user_category_subscriptions ON user_category_subscriptions.category_id = categories.category_id WHERE user_category_subscriptions.user_id = 1 1つのクエリのみを使用して、特定のユーザーがサブスクライブするすべてのカテゴリとすべてのカテゴリを取得するにはどうすればよいですか? category_idは、categoryテーブルとuser_category_subscriptionsの両方のキーです。user_category_subscriptionsテーブルにあるuser_id。 ありがとう
130 mysql  join  where-clause 

6
SQLではwhere句の順序は重要ですか?
PEOPLE3つのカラムを持つというテーブルがあるとしましょうID, LastName, FirstName。これらのカラムにはインデックスが付けられていません。 LastNameよりユニークで、FirstNameそれほどユニークではありません。 2つの検索を行う場合: select * from PEOPLE where FirstName="F" and LastName="L" select * from PEOPLE where LastName="L" and FirstName="F" 私の考えでは、よりユニークな基準(LastName)がwhere句の最初に来るため、2番目の方が速く、レコードがより効率的に排除されると考えています。オプティマイザーは最初のSQLを最適化するほど賢いとは思いません。 私の理解は正しいですか?

6
MySQL-IN()内のORDER BY値
IN()関数に入力された順序で、次のクエリで返されたアイテムを並べ替えたいと思っています。 入力: SELECT id, name FROM mytable WHERE name IN ('B', 'A', 'D', 'E', 'C'); 出力: | id | name | ^--------^---------^ | 5 | B | | 6 | B | | 1 | D | | 15 | E | | 17 | E | | 9 | …



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.