sql >> データベース >  >> RDS >> Mysql

mysqlの2つのテーブルからデータを取得すると、結合はここでは機能しません

    私が正しく理解していれば、これで必要なことができるはずです:

    $result = mysql_query("SELECT (specName, (IF EXISTS (SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1))) FROM specialities s;");
    while (list($spec, $checked) = mysql_fetch_array($result)) {
        // Do your outputting here.
    }
    

    編集

    ご要望に応じて、質問について説明します。おそらくあなたを混乱させる部分は、このサブクエリです:

    (IF EXISTS (SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1))
    

    IF EXISTS 直後の部分が「存在する」(結果を含む)場合、MySQLにTRUEまたはFALSEを返すように指示します。 SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1 user_specialtyで行を検索するようにMySQLに指示するだけです ここで、s.id = us.sid (特殊IDが一致します)およびus.uid = '$id' (IDはユーザーのものです。)



    1. PHPで文字列として返されるMySQLの10進フィールド

    2. データベースへのすべての接続を強制終了するスクリプト(RESTRICTED_USER ROLLBACK以上)

    3. MariaDBの日付と時刻の関数に使用される言語を返す

    4. Hibernateバッチ挿入はどのように機能しますか?