2012-02-29 25 views
0

私は3つのテーブルを結合し、いくつかのカラムがそうではないようにクエリ自体のためにすべてのカラムを必要とするクエリで取得するレスポンスからカラムを取り除くことは可能ですか?応答に表示されますか?PHP MYSQLクエリ - レスポンスからカラムを取り除く

これは私が持っているクエリです:

$sth = mysql_query(" 
     SELECT 
      tbl_subApp2Tag.*, 
      tbl_subApp.*, 
      tbl_tag.* 
      ISNULL(tbl_userDeviceNOTTag.userDevice_id) AS selected 

     FROM tbl_subApp2Tag 

     LEFT JOIN tbl_subApp 
      ON tbl_subApp.id = tbl_subApp2Tag.subApp_id 
      AND tbl_subApp.subApp_id = '".$sub."' 

     LEFT JOIN tbl_tag 
      ON tbl_tag.id = tbl_subApp2Tag.tag_id 

     LEFT JOIN tbl_userDeviceNOTTag 
      ON tbl_userDeviceNOTTag.tag_id = tbl_tag.id 
      AND tbl_userDeviceNOTTag.userDevice_id = '".$user."' 

     WHERE tbl_subApp2Tag.subApp_id = tbl_subApp.id 

     ORDER BY tbl_tag.name ASC "); 
    if(!$sth) echo "Error in query: ".mysql_error(); 
    while($r = mysql_fetch_assoc($sth)) { 
     $rows[] = $r; 
    } 
+0

これは私があなたを得た場合に役立ちますhttp://stackoverflow.com/questions/9122/select-all-columns-except-one-in-mysql – Narek

+0

どの列が必要ですか?基本的には、SELECTに必要な列のみを含める必要があります。 JOINまたはWHERE句で使用するためにSELECTに含める必要はありません。 –

+0

これを行う最善の方法は、必要な列を明示的に指定することです。 –

答えて

2

あなたは彼らが他の場所でクエリで参照されているという理由だけで、結果表の列を含める必要はありません。必要な列を選択するだけです。

+0

SELECTの意味ですか?私はこれを試しました。例えば、tbl_subapp。*をtbl_subapp.idに変更しました。その結果、クエリのエラーになります!クエリのエラー:SQL構文にエラーがあります。 mysql_fetch_assoc():供給ライン5
警告で 'tbl_subApp2Tag FROM \t \t \t \t \tを選択したISNULL(tbl_userDeviceNOTTag.userDevice_id')の近くに使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認してください引数が有効なMySQL結果リソースではありません –

+0

これはおそらく構文上のエラーです。私はちょうどあなたが元のクエリからカンマが不足していることに気づいた。 –

+0

どこに行方不明ですか? –

関連する問題