亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

并排顯示一條 Union 語句

并排顯示一條 Union 語句

PHP
慕容708150 2022-05-27 09:51:20
所以我有以下選擇語句:SELECT game_name, status, OS FROM mobile_version_sports UNION ALL SELECT game_name, status, OS FROM android_sports這樣我得到以下輸出:Dragons APPROVED    IOSDragons APPROVED    ANDROID這樣我就有了一個 PHP 頁面,它可以顯示所有內容并使用少量 CSS 來更改選項卡的顏色。在那個PHP中,我有以下代碼: foreach($q as $row2){    print "<tr><td>".$row2['game_name']."</td>";    print "<td class=".$row2['mobile_version_sports.status'].">".$row2['OS.mobile_version_sports']."  </td>";    print "<td class=".$row2['status.android_sports'].">".$row2['OS.android_sports']."</td></tr>";}我遇到了麻煩,因為我希望它用兩個操作系統互相說出游戲的名稱,然后根據狀態和我的 CSS 改變游戲名稱。編輯:我需要通過 PHP 以這種方式查看,以便在網頁中查看而不是 SQL 調用 例如:Dragons IOS ANDROID
查看完整描述

3 回答

?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

你應該能夠通過使用JOIN來得到你需要的東西。


SELECT mobile_version_sports.game_name,

       mobile_version_sports.status AS mobile_version_sports_status,

       mobile_version_sports.OS AS mobile_version_sports_OS,

       android_sports.status AS android_sports_status,

       android_sports.OS AS android_sports_OS

FROM mobile_version_sports

     JOIN android_sports

        ON mobile_version_sports.game_name = android_sports.game_name

SQL 小提琴:http ://sqlfiddle.com/#!9/31be6/1


根據您的編輯,您的 PHP 代碼將如下所示:


foreach($q as $row2){

    print "<tr><td>".$row2['game_name']."</td>";

    print "<td class=".$row2['mobile_version_sports_status'].">".$row2['mobile_version_sports_OS']." 

 </td>";

    print "<td class=".$row2['android_sports_status'].">".$row2['android_sports_OS']."</td></tr>";

}

這有望使您朝著正確的方向前進。


查看完整回答
反對 回復 2022-05-27
?
米脂

TA貢獻1836條經驗 獲得超3個贊

如您的評論所示,在這里做出一些假設:

  • game_name可用作鏈接 2 個表的鍵

  • mobile_version_sports僅持有 iOS 游戲

  • android_sports只支持安卓游戲

因此,有了這些假設,您可能會更幸運地使用這樣的查詢來執行類似于完全外連接的操作:


SELECT i.game_name, i.status AS iOSStatus, a.status AS androidStatus, 

  i.OS IS NOT NULL AS iOS,

  a.OS IS NOT NULL AS android

FROM mobile_version_sports i

  LEFT JOIN android_sports a ON a.game_name = i.game_name

UNION

SELECT a.game_name, i.status AS iOSStatus, a.status AS androidStatus,

  i.OS IS NOT NULL AS iOS,

  a.OS IS NOT NULL AS android

FROM mobile_version_sports i

  RIGHT JOIN android_sports a ON a.game_name = i.game_name


PHP 代碼示例:


foreach($q as $row2){

  print "<tr><td>".$row2['game_name']."</td>";


  print "<td>";

  print $row2['iOS'] ? '<span class="' . $row2['iOSStatus'] . '">iOS</span>' : '';

  print $row2['android'] ? '<span class="' . $row2['androidStatus'] . '">Android</span>' : '';

  print "</td></tr>";

}


查看完整回答
反對 回復 2022-05-27
?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

如果 2 個表之間總是匹配 game_name,請嘗試使用這個簡短的代碼。否則將左連接與一些 ifnull(a.status,'NOT') as a_status語句一起使用:


   SELECT m.game_name,       

          m.OS AS m_OS,

          m.status AS m_status,

          a.OS AS a_OS,

          a.status AS a_status

    FROM mobile_version_sports as m

         JOIN android_sports as a

            ON m.game_name = a.game_name group by m.game_name;


查看完整回答
反對 回復 2022-05-27
  • 3 回答
  • 0 關注
  • 102 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號