MySQLクエリは、両方のテーブルに行がある場合にのみ結果を返します

ヴォーン・ダブニー

問題:私のmysqlデータベースには、2つのテーブルリスト共有があります。リストのテーブルは、ユーザーが作成したことのリストを行うためのすべてを持っています:

「リスト」テーブル

株式のテーブルには、別のユーザーから共有されているすべてのリストを格納します。

「シェア」テーブル

私がやりたいのは、ユーザーが作成したリストとアクセスできる共有リストの両方の、ユーザーのすべてのリストを取得することです。現在、sharesテーブルにエントリがある場合に完全に機能するselectステートメントがあります(結果を取得する特定のユーザーに関連するかどうかは関係ありません)。

共有テーブルから結果を削除し、同じマルチテーブルSELECTステートメントを使用しようとすると、結果が得られず、その理由がわかりません。

これが私が使用しているSELECTステートメントです:

SELECT DISTINCT `lists`.* FROM `lists`,`shares` WHERE `lists`.user_id = '$userid' OR (`shares`.sharedwith_id = '$userid' AND `lists`.id = `shares`.list_id) ORDER BY `lists`.datecreated DESC

クエリのヘルプは素晴らしいでしょう。JOINを見てきましたが、私が持っているものよりも効率的なものは見当たりませんでした。

Stavr00

あなたは本当に句のJOIN代わりに使うべきですWHERE

SELECT DISTINCT `lists`.* 
FROM `lists`
LEFT JOIN `shares`
ON `lists`.`id`=`shares`.list_id AND `lists`.`user_id`=`shares`.`sharedwith_id`
WHERE `lists`.`id` = ?

最後に、SQLインジェクション攻撃を回避します。SQLに引数を埋め込まないでください。引数をパラメーターとして渡します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

サブクエリがpostgresの結果を返す場合にのみテーブルを更新します

分類Dev

Mysql 2つのテーブルを1つの出力に結合しますが、結果のサブクエリは複数の行を返します

分類Dev

Mysqlサブクエリは、リストに複数のIDがある場合でも、1つの結果のみを返します。

分類Dev

MYSQL-クエリAまたはクエリBを返しますが、両方は返しません。両方が存在する場合、クエリAの結果を返します

分類Dev

テーブルを結合する際にmysqlのクエリが重複行を返します。

分類Dev

アクセスでは、クエリはすべてのフィールドにレコードがある場合にのみ結果を表示します

分類Dev

結合クエリにより、商品テーブルと商品画像テーブルの両方を削除します

分類Dev

Postgres-2つのサブクエリが結果を生成する場合にのみクエリの結果を返します

分類Dev

MySQLのクエリ-両方のテーブルに存在しない値に対して0を返します

分類Dev

1つのテーブルからすべての結果を返し、別のテーブルにある場合はyes / noを返すMSAccessクエリはどうなりますか

分類Dev

右側のテーブルにNULLが存在する場合は左側のテーブルからすべての結果を返し、右側のテーブルにnullが存在しない場合は内部結合の結果を返します

分類Dev

結合を使用し、2つのテーブルに同じ名前のフィールドがある場合、MYSQLクエリで正しい結果を特定するにはどうすればよいですか?

分類Dev

月の列に値がある両方のテーブルの行を返します

分類Dev

両方のテーブルに1つの共通IDがあるmysqlのtable1とtable2からすべての結果を選択します

分類Dev

MySQLクエリの実行中にフィールドを変更でき、両方の値が結果セットに存在しますか?

分類Dev

SQL-(2つの異なるテーブルの)行間の差異を返しますが、両方のテーブルに行IDが存在する場合のみ

分類Dev

vbaは、2つのセルの日付間の日数を計算し、両方のセルに日付がある場合にのみ値を返します

分類Dev

テーブルに値をMoodleしませんが、クエリ結果の数は1を返します

分類Dev

結合されたテーブルに行が含まれていない場合、mySQLの結合テーブルはNULLを返します

分類Dev

複数のwhere句が1つの結果テーブルに複数の結果行を返すselectクエリがありますか?

分類Dev

結合テーブルに結果行がない場合はデフォルト値を返します

分類Dev

2つのテーブルをスリック結合して、両方の結果を取得します

分類Dev

グループが別のテーブルにある場合、グループの左結合トリックを使用して最大/最小行を削除します

分類Dev

Mysql:子テーブルに行がある場合にのみ、親テーブルから選択します

分類Dev

INSERT OVERWRITEのSELECTクエリが結果を返さない場合に、Hiveテーブルが上書きされないようにする方法はありますか?

分類Dev

一方または他方、あるいは両方のフィールドが一致する場合に行を取得します

分類Dev

両方のテーブルのcount(*)を除算し、何年にもわたって月で結合するMYSQLクエリ

分類Dev

メインクエリに0行がある場合、サブクエリから結果を生成するMysql結果セットの問題

分類Dev

クエリに値がある場合はテーブルを更新します

Related 関連記事

  1. 1

    サブクエリがpostgresの結果を返す場合にのみテーブルを更新します

  2. 2

    Mysql 2つのテーブルを1つの出力に結合しますが、結果のサブクエリは複数の行を返します

  3. 3

    Mysqlサブクエリは、リストに複数のIDがある場合でも、1つの結果のみを返します。

  4. 4

    MYSQL-クエリAまたはクエリBを返しますが、両方は返しません。両方が存在する場合、クエリAの結果を返します

  5. 5

    テーブルを結合する際にmysqlのクエリが重複行を返します。

  6. 6

    アクセスでは、クエリはすべてのフィールドにレコードがある場合にのみ結果を表示します

  7. 7

    結合クエリにより、商品テーブルと商品画像テーブルの両方を削除します

  8. 8

    Postgres-2つのサブクエリが結果を生成する場合にのみクエリの結果を返します

  9. 9

    MySQLのクエリ-両方のテーブルに存在しない値に対して0を返します

  10. 10

    1つのテーブルからすべての結果を返し、別のテーブルにある場合はyes / noを返すMSAccessクエリはどうなりますか

  11. 11

    右側のテーブルにNULLが存在する場合は左側のテーブルからすべての結果を返し、右側のテーブルにnullが存在しない場合は内部結合の結果を返します

  12. 12

    結合を使用し、2つのテーブルに同じ名前のフィールドがある場合、MYSQLクエリで正しい結果を特定するにはどうすればよいですか?

  13. 13

    月の列に値がある両方のテーブルの行を返します

  14. 14

    両方のテーブルに1つの共通IDがあるmysqlのtable1とtable2からすべての結果を選択します

  15. 15

    MySQLクエリの実行中にフィールドを変更でき、両方の値が結果セットに存在しますか?

  16. 16

    SQL-(2つの異なるテーブルの)行間の差異を返しますが、両方のテーブルに行IDが存在する場合のみ

  17. 17

    vbaは、2つのセルの日付間の日数を計算し、両方のセルに日付がある場合にのみ値を返します

  18. 18

    テーブルに値をMoodleしませんが、クエリ結果の数は1を返します

  19. 19

    結合されたテーブルに行が含まれていない場合、mySQLの結合テーブルはNULLを返します

  20. 20

    複数のwhere句が1つの結果テーブルに複数の結果行を返すselectクエリがありますか?

  21. 21

    結合テーブルに結果行がない場合はデフォルト値を返します

  22. 22

    2つのテーブルをスリック結合して、両方の結果を取得します

  23. 23

    グループが別のテーブルにある場合、グループの左結合トリックを使用して最大/最小行を削除します

  24. 24

    Mysql:子テーブルに行がある場合にのみ、親テーブルから選択します

  25. 25

    INSERT OVERWRITEのSELECTクエリが結果を返さない場合に、Hiveテーブルが上書きされないようにする方法はありますか?

  26. 26

    一方または他方、あるいは両方のフィールドが一致する場合に行を取得します

  27. 27

    両方のテーブルのcount(*)を除算し、何年にもわたって月で結合するMYSQLクエリ

  28. 28

    メインクエリに0行がある場合、サブクエリから結果を生成するMysql結果セットの問題

  29. 29

    クエリに値がある場合はテーブルを更新します

ホットタグ

アーカイブ