簡體   English   中英

連接來自兩個mysql表的列

[英]Join columns from two mysql tables

我正在嘗試找出以下內容。 首先,我想檢查成員是否在11、43或1組中。

我有帶有列的下表:

table members (member_id, name, group)
334 Ronald 43
table content (member_id, value)
334 Gold

我正在尋找一個查詢,該查詢顯示名稱FROM成員和值FROM內容,並與member_id連接,最終結果類似

羅納德·金

如果用戶不在我設置的組中,則不會顯示他/她。

以下是我設法做的

$sql = 'SELECT * FROM members m INNER JOIN content p ON m.member_id = p.member_id  ';
$retval = mysql_query( $sql, $conn );    

while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
echo $row['member_id']. " " .$row['value'];
echo "<br>";
}    

將輸出334金幣。

我只需要檢查開頭的組,然后在最終輸出中將member_id替換為name。 有什么幫助嗎?

如果將echo $row['member_id']更改為echo $row['name'] ,則在回顯結果時,將獲得成員的名稱。

返回$row['group']將告訴您成員所在的組。

只需調整您的mysql查詢即可:

$sql = 'SELECT m.name, p.value FROM members m JOIN content p ON m.member_id = p.member_id WHERE m.group = 1 OR m.group = 11 OR m.group = 43;

然后

echo $row['name']. " " .$row['value'];

另外,由於不建議使用mysql_query()因此您應該使用mysqli_query()PDO::query() 參考

您的SQL應該為每一行返回以下構造

(member_id, name, group, value)

篩選出不在所需組中的成員修改您的查詢

$sql = 'SELECT * FROM members m INNER JOIN content p ON m.member_id = p.member_id  WHERE m.group IN (11,43,1) ';

邊注:

考慮使用PDO或mysqli_ *而不是mysql_ *,因為不推薦使用mysql_ *並在PHP7中刪除

暫無
暫無

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

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