ホームページ >バックエンド開発 >PHPチュートリアル >2つのMYSQLテーブルのステートメントについてアドバイスを求めたいです。

2つのMYSQLテーブルのステートメントについてアドバイスを求めたいです。

WBOY
WBOYオリジナル
2016-06-23 13:27:281046ブラウズ

$sql = "SELECT a.id,a.cover,a.name,a.name2,b.id,b.likes,b.month FROM dede_aiyunma_user AS a,dede_aiyunma_thing AS b WHERE a.id=b.id order by a.id desc";$dsql->Execute('me',$sql);while($row = $dsql->GetArray('me')){$uid = $row['id'];$cover = $row['cover'];$fname = $row['name'];$mname = $row['name2'];$like = $row['likes'];}

助けてください。テーブル a と b のデータを表示できます。b.month フィールドに基づいて b.likes フィールドを表示できるようにする必要があります。
後でこのステートメントを変更する必要があります。 WHERE a.id=b. id と b.month= $month order by a.id desc となる場合、これは 2 つのテーブルの条件になります。 where b.month= $month はテーブル B でのみ機能します。


ディスカッションに返信(解決策)

b.month= $month 元々はテーブル B でのみ動作します

b.month= $month 元々はテーブル B でのみ動作します


こんにちは、私は感じています 返信
$sql = "SELECT a.id,a.cover,a.name,a.name2,b.id,b.likes,b.month FROM dede_aiyunma_user AS a,dede_aiyunma_thing AS b WHERE a.id=b.id and b.month= $month order by a.id desc";$dsql->Execute('me',$sql);while($row = $dsql->GetArray('me')){$uid = $row['id'];$cover = $row['cover'];$fname = $row['name'];$mname = $row['name2'];$like = $row['likes'];}

b.month= $month 条件を追加すると、テーブル A ($uid $cover $fname $mname) のデータは表示されなくなります。要件は、$like が $month に従って変更されることだけです

接続条件は次のとおりです。 a.id=b.id
フィルター条件は b.month= $month です
結果がない場合は、条件を満たすレコードが b に存在しないことを意味します

つまり、b.month は数値ですか?

辛抱強くご回答いただきありがとうございます。

接続条件は a.id=b.id です
フィルター条件は b.month= $month です
結果がない場合は、条件を満たすレコードが b に存在しないことを意味します

次に、あなたの b .month は数値型ですか?


さて、b.month は数値 int です
まだ理解できませんが、b の条件を満たすレコードはありませんが、a の変数もデータを出力できません
さて、私の目的はクエリと出力ですテーブルaとテーブルbのデータのみを検索します 月を条件とするlikesフィールドが存在しない場合、0が出力されます
私のコードの問題なのかSQLの問題なのかわかりません。初心者には難しい

この場合は、a.id に従ってソートされています

もし、b.month= $month に従うことを主張する場合、あと 1 文しか書くことができません。

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