2014-05-22 53 views
0

我在編程新的,所以我有一個關於MySQL中選擇數據的問題。所有的答案都是關於我沒有真正期待的合併和加入。返回選擇*從2個表沒有任何相似行

包含所有用戶數據,並示出了由用戶的所有帖子第二表第一表。

我試着這樣做:

$sql="select * from wall, maintable where postverification="yes" AND userid='".$_SESSION['userid']."'"; 

$result=mysql_query($sql); 

$row=mysql_fetch_array($result); 

我想這些不同的數據,所以我可以張貼在同一個到PHP的隱藏字段的形式,含有「誰張貼的內容」的理由稱爲頁wall.php(像一個Twitter概念,但是示出了所有的用戶交時間軸)

,我已經從以上表1僅選擇嘗試的代碼是否「壁」或「maintable」。

這是怎麼發生的?

+0

什麼是你的表結構?另外mysql_ *函數(正在?)折舊,您應該切換到使用mysqli_ *或PDO。 –

+1

根據您提供的有關這兩個表的信息,它們幾乎必須有一個共同的列 - 包含用戶ID或類似信息。加入該列上的表格,然後使用正常連接。你可能會(http://stackoverflow.com/questions/12475850/how-can-an-sql-query-return-data-from-multiple-tables),我放在一起,以幫助[閱讀這個Q&A得到一些好處]有這樣的問題。 – Fluffeh

+0

你好@TomHart Thankyou你的迴應。我試圖理解你的問題,我的維護包含用戶名,全名,暱稱。和我的牆上的表格包含postid postverification全文和標題。你問嗎? – user3665072

回答

1

也許你看是這樣的:

SELECT a.field1, b.field2 FROM table1 AS a, table2 AS b WHERE a.field3=b.field3 

或者使用LEFT JOIN,相同的查詢變爲:

SELECT a.field1, b.field2 
FROM table1 AS a 
LEFT JOIN table2 AS b ON a.field3=b.field3 

你需要看看SQL別名。

0

你必須使用一個join聲明:

select * from wall inner join nmaintable on wall.'samefield'=postverification.'samefield' 
where postverification="yes" AND userid='".$_SESSION['userid']."'"; 

還要考慮SQL injection,請嘗試使用PDO