第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

將兩條 SELECT 語句合并為一條 SQL

將兩條 SELECT 語句合并為一條 SQL

PHP
縹緲止盈 2021-12-24 15:38:19
我會(huì)盡量讓它更容易理解我有兩個(gè)表:posts    id    title    descr    body    cat_idcats    id    name為了從表格帖子中獲取所有內(nèi)容,我使用了這個(gè):sql = "SELECT * FROM posts ORDER BY id"; $query = $db->prepare($sql);$query->execute();$posts = $query->fetchAll(); 現(xiàn)在從我使用的 cat_id 中獲取每個(gè)帖子的類別名稱'SELECT c.name FROM cats c INNER JOIN posts p ON c.id = p.cat_id ORDER BY p.id DESC';我想組合這兩個(gè)查詢,以便我可以顯示 cat_id 的類別名稱(例如,我得到 1 應(yīng)顯示類別的位置,而不是 Sports)。例如,顯示之后我使用的帖子中的所有內(nèi)容    foreach($posts as $post): <?php echo $post['title']; ?> 當(dāng)我使用它時(shí),我不能只顯示類別名稱 cat_id。我嘗試了 UNION 并嘗試進(jìn)行兩個(gè)查詢,但無法在 foreach 中使用 foreach 我出錯(cuò)了。
查看完整描述

2 回答

?
慕的地8271018

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊

回答您的查詢。下面是我的 SQL。在下面的查詢中,您可以從帖子和單列(即名稱)中選擇所有記錄。


如果您想擁有所有列,請(qǐng)使用 p 對(duì)其進(jìn)行編輯。,C?;蛘咧皇墙o *. 所以它會(huì)為你獲取所有的列。希望這能回答您的疑問。如果不是,請(qǐng)多解釋一下您的問題。


SELECT p.name,c.* FROM cats as c 

INNER JOIN posts as p ON cats.id = posts.cat_id;


查看完整回答
反對(duì) 回復(fù) 2021-12-24
?
桃花長相依

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊

沒有辦法做你直接問的事情。每個(gè)SELECT語句都是一個(gè)唯一的查詢,它返回?cái)?shù)據(jù)庫驅(qū)動(dòng)程序的結(jié)果,您將通過fetchAll()上面寫的方式獲得結(jié)果。(請(qǐng)注意,有其他的方法來從PHP數(shù)據(jù)庫獲得的值,如fetch()在描述https://www.php.net/manual/en/pdostatement.fetch.php。如果你不需要整套一個(gè)大列表中的結(jié)果,您可能會(huì)考慮使用該方法)


其他評(píng)論者說的是對(duì)的,你想做的是:


SELECT c.title

FROM cats c

INNER JOIN posts p ON c.id = p.cat_id

ORDER BY p.id DESC

這將為您提供所有cats具有關(guān)聯(lián)post. 您可以通過以下方式使用它:


<?php

$sql = "see above SELECT";

$query = $db->prepare($sql);

$query->execute();

$categoryTitles = $query->fetchAll();

foreach ($categoryTitles as $title) {

    echo $title['title'];

}

(請(qǐng)注意,該示例將向?yàn)g覽器輸出一大塊文本,您需要將其集成到您自己的 HTML 生成代碼中)


您發(fā)布的代碼:


    foreach($posts as $post):

 <?php echo $post['title']; ?> 

看起來不像完全有效的 PHP。在foreach看起來是一個(gè)外<?php ... ?>塊。如果它在這些塊之一內(nèi),您將嵌套 PHP 塊,例如:<?php foreach($posts as $post) { <?php echo $post['title']; ?> } ?>我認(rèn)為這不是有效的語法。另外你:在foreach我不確定是否有效的語法之后放了一個(gè)。您的示例代碼還name從數(shù)據(jù)庫中選擇列,而不是title您嘗試在 PHP 代碼中檢索的列。


有效語法的一個(gè)例子是:


<?php

// all the PDO code

?>

<!-- some HTML -->

<?php foreach ($posts as $post) { ?>

  <div> some more HTML </div>

  <? echo $post['title']; ?>

<?php } ?>

執(zhí)行您所詢問的另一種方法是將您的 SQL 代碼轉(zhuǎn)換為存儲(chǔ)過程,但這對(duì)于您當(dāng)前的用例來說可能太復(fù)雜了。

查看完整回答
反對(duì) 回復(fù) 2021-12-24
  • 2 回答
  • 0 關(guān)注
  • 244 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)