SELECT * FROM テーブル 1、テーブル 2 WHERE table1.user_id = table2.id AND table1.content = ニュース AND table1.content_id = 1
それはうまくいきません。SQLステートメントに2つの「AND」を含めることはできませんか??
//トメック
SELECT * FROM テーブル 1、テーブル 2 WHERE table1.user_id = table2.id AND table1.content = ニュース AND table1.content_id = 1
それはうまくいきません。SQLステートメントに2つの「AND」を含めることはできませんか??
//トメック
おそらく「ニュース」を文字列として引用したいでしょう...代わりに内部結合を使用したいでしょう(はるかに効率的です)
SELECT * FROM table1
INNER JOIN table2 ON table1.user_id = table2.id
WHERE table1.content = 'news'
AND table1.content_id = 1
news
は何ですか?ある種のパラメータ?フィールドの値? 現場に出てくるべき言葉?ほとんどの場合、構文が間違っています。詳細については、W3Schools WHEREおよびW3Schools AND/OR演算子のページを参照してください。
もう1995年ではないので、JOINステートメントで書き直させてください。ニュースの周りの引用符も必要です
SELECT * FROM table1 t1
inner join table2 t2 on t1.user_id = t2.id
AND t1.content = 'news'
AND t1.content_id = 1
適切な JOIN 構文を使用することを強くお勧めします。
select * from table1 内部結合 table2 on table1.user_id = table2.id ......
「table1.content」とはどのようなデータ型ですか?
SQL クエリに 2 つ以上の AND ステートメントを使用できることは間違いありません。SQL-xx 標準のいずれかを実際にサポートするデータベースは、これをサポートします...
まず、古いスタイルの join を取り除き、join 句と where 句を明確に分離して理解を容易にすることから始めましょう。
SELECT * FROM table1 t1.
JOIN table2 t2
ON t1.user_id = t2.id
WHERE t1.content = news
AND t1.content_id = 1
では、何が問題なのかを考えてみましょう。これは完全に受け入れられる構文である可能性があるため、最初にどのようなエラーが表示されますか? 問題は、ニュースがどのテーブルから来るのかを書き留めていないことでしょうか? 両方のテーブルにある場合、そこでエラーが発生する可能性があります。ニュースが列の値であることが意図されている場合は、ニュースではなく「ニュース」にする必要があります。また、条件に一致するレコードがないことも考えられます。
さらに、 select * を使用することは悪い習慣であり、少なくとも 1 つのフィールドを 2 回返すことになり、データベースとネットワーク リソースの両方を浪費するため、決して結合で使用しないでください。常に必要な列のみを指定してください。怠惰なプログラマーがすべてのクエリでこれを行うと、これは毎日多くのリソースを浪費します。
cmartin の反応が気に入りました。また、必要に応じて複数の AND を使用できます。