2017-06-20 129 views
2

我有兩個表,一個叫'user',另一個叫'user_info'。PHP MySQL從2個不同的表中選擇*並顯示合併的數據

user;

userid  |  username 
------------------------------ 
1   |  mary 
2   |  john 
3   |  liam 

user_info;

userid  |  desc 
---------------------------------------------------- 
1   |  hello, my name is mary i am 26 
2   |  message me if you need any help 
3   |  please leave me alone 

我想從'user_info'表中顯示來自'user'表的信息基於userID的相應描述。所以它會出現像:

Name: John 
UserID: 2 
Description: message me if you need any help 

這是我的代碼;

//Query the database 
$resultSet = $mysqli->query("SELECT * FROM user,user_info"); 

//Count the returned rows 
if ($resultSet->num_rows != 0) { 


//Turn the results into an ArrayAccess 
while($rows = $resultSet->fetch_assoc()) 
{ 
    $uid = $rows['UserID']; 
    $username = $rows['username']; 
    $desc = $rows['desc']; 

echo "<p>Name: $username </p> 
     <p>User ID: $uid </p> 
     <p>Description: $desc </p> 
     <hr>"; 
} 

目前它返回儘可能多的不同組合,因爲它可以;像這樣:

Name:Mary 
UserID:1 
Description:hello, my name is mary i am 26 
-------------------------------------------- 
Name:John 
UserID:1 
Description:message me if you need any help 
-------------------------------------------- 
Name:Liam 
UserID:1 
Description:please leave me alone 
-------------------------------------------- 
Name:Mary 
UserID:2 
Description:hello, my name is mary i am 26 
-------------------------------------------- 
Name:John 
UserID:2 
Description:message me if you need any help 
-------------------------------------------- 
ETC... 

我怎樣才能讓這個只返回一個基於用戶ID(僅一次),以便顯示所有與他們正確的用戶名,標識和說明用戶正確的對應數據?

我不知道怎麼回事,解釋這一點,如果有人想我進一步闡述我沒有問題再次嘗試,

+0

使用加入,SELECT * FROM X左加入y其中X。 user_id = y.userid – MIIB

回答

2

更新您的要求

$resultSet = $mysqli->query("SELECT * FROM user 
    JOIN user_info ON user_info.userid = user.userid"); 
+0

完美!這回答了我的問題!感謝您的幫助!新的PHP仍然學習! :) – John107

+0

也只是意識到,我有這個寫下來的地方!它總是在你的鼻子下!無論如何,祝賀打800! – John107

+0

@ John107,不客氣;) – FieryCat

0

嘗試修改您查詢如下:

SELECT user.*,user_info.desc FROM user INNER JOIN user_info ON user.userid=user_info.userid; 
+0

感謝您的幫助! – John107

0

做一個內部聯接查詢是這樣的:

Select userId, userName, desc from user inner join user_info on 
user.userid = user_info.userid 

這應該做的伎倆。

+0

謝謝你的幫助! – John107

0

您可以使用join方法根據自己的關係,從不同的表中的數據,按你方問題的查詢會是這樣,

select user.username as Name, user.userid as UserID, user_info.desc as Description from user inner join user_info on user.userid=user_info.userid; 
相關問題