簡體   English   中英

從多個表中獲取具有相同名稱的列

[英]get column with same name from multiple tables

我有兩個表:USERS(id,名稱,電子郵件,密碼)QUESTIONS(id,userid,類型,ques,日期,時間)

我必須將Questions.id的值作為qid傳遞。 我無法使用以下代碼獲得所需的結果。 而不是采用QUESTIONS表的'id'值,而是采用USERS表的'id'值,從而產生錯誤的輸出。

$query = "
SELECT *
     , q.id qid 
  FROM questions q
  JOIN users u
    ON u.id = q.userid 
 WHERE type = 'technical' 
 ORDER 
    BY date
     , time DESC
 ";
$result = mysqli_query($conn,$query);
while ($row = mysqli_fetch_array($result)) {

$id = $_SESSION['id'];  
$ques=$row['question'];
$user = $row['username'];

    echo strtoupper($user);

    echo "<a href='allview.php?qid=$row[id]' class='class4'> $ques </a>";

}
?>

這段代碼:

$id = $_SESSION['id'];  

引用selectid列。 id來自users表。

您已將問題ID重命名為qid ,因此請嘗試:

$qid = $_SESSION['qid'];

忠告:僅獲取您實際要使用的列:

SELECT u.username, q.id as qid
FROM questions q JOIN
     users u
     ON u.id = q.userid
WHERE type = 'technical' 
ORDER BY date, time DESC;

*在調試時很方便,但是由於基礎表結構發生了變化,因此代碼有時可能會出乎意料的表現。

嘗試使用此代碼

$query = "
SELECT *
     , q.id AS qid,
       q.id AS id
  FROM questions q

試試這個

$query = "
SELECT *
     , questions.id qid 
  FROM questions q
  , users u
 WHERE q.userid = u.id
 AND type = 'technical' 
 ORDER 
    BY date
     , time DESC
 ";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM