MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

サブクエリをLEFTJOINに変換するにはどうすればよいですか?


次の表のデータを使用していることを理解するために-

mysql> Select * from customers;
+-------------+----------+
| Customer_Id | Name     |
+-------------+----------+
| 1           | Rahul    |
| 2           | Yashpal  |
| 3           | Gaurav   |
| 4           | Virender |
+-------------+----------+
4 rows in set (0.00 sec)

mysql> Select * from reserve;
+------+------------+
| ID   | Day        |
+------+------------+
| 1    | 2017-12-30 |
| 2    | 2017-12-28 |
| 2    | 2017-12-25 |
| 1    | 2017-12-24 |
| 3    | 2017-12-26 |
+------+------------+
5 rows in set (0.00 sec)

次に、車を予約する必要のないすべての顧客の名前を検索するサブクエリを示します。

mysql> Select Name from customers where customer_id NOT IN (Select id From reserve);
+----------+
| Name     |
+----------+
| Virender |
+----------+
1 row in set (0.00 sec)

これで、次の手順を使用して、上記のサブクエリを右結合に変換できます-

  • サブクエリで指定された「Reserve」テーブルをFROM句に移動し、LEFTJOINを使用して「Customers」に結合します。
  • WHERE句は、customer_id列をサブクエリから返されたIDと比較します。したがって、IN式をFROM句の2つのテーブルのid列間の明示的な直接比較に変換します。
  • WHERE句で、「Reserve」テーブルにNULLがある行に出力を制限します。
mysql> SELECT Name from customers LEFT JOIN reserve ON customer_id = Id WHERE Id IS NULL;
+----------+
| Name     |
+----------+
| Virender |
+----------+
1 row in set (0.00 sec)

  1. Pythonタプルを文字列に変換するにはどうすればよいですか?

    文字列オブジェクトのタプルを単一の文字列に変換するには、join()関数を使用できます。 trget文字列がnull文字列に初期化されていることを確認してください >>> T1=1,2,3 >>> s=.join(T1) >>> s 123

  2. Pythonで文字のリストを文字列に変換するにはどうすればよいですか?

    Pythonには、要素間にセパレータを挿入してシーケンスオブジェクト内の要素を結合することで文字列を返すjoin()関数が組み込まれています。区切り文字のない文字列が必要な場合は、null文字列で初期化します >>> lst=['h','e','l','l','o'] >>> str='' >>> str.join(lst) 'hello'