[英]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.