2015-02-09 88 views
0

我有一個運行良好的sql查詢,但我需要一種方法來擴展此查詢以從另一個名爲LineUps的表中獲取信息。針對兩個表的PHP mysql查詢

原始查詢:

$stmt = $conn->prepare("SELECT channel, description, Tier 
FROM Channel_LineUps WHERE Market_ID = 1 ORDER BY Tier ASC"); 

我需要現在也從一個叫不同的表中獲取數據。

列在LineUps表中稱爲DIG和HD。

我嘗試以下但不工作:

$stmt = $conn->prepare("SELECT Channel_LineUps.channel, Channel_LineUps.description, Channel_LineUps.Tier, LineUps.HD, LineUps.DIG FROM Channel_LineUps, LineUps WHERE Channel_LineUps.Market_ID = 1 ORDER BY Channel_LineUps.Tier ASC"); 

我希望能夠確定在信道標記爲是對DIG或HD等想我需要爲這個單查詢。

任何想法?

+2

請提供表格結構和樣品數據。乍一看,它看起來像沒有連接條件,所以你得到一個笛卡爾連接,這可能需要很長的時間來渲染。 – 2015-02-09 20:40:29

+0

陣容和channel_lineups表有什麼共同點? – oks 2015-02-09 20:43:04

回答

1

您需要創建兩個表之間的連接是需要有從第一臺(Channel_lineUps)共同列於LineUps表,那麼你可以有一個內部聯接這兩個表像channel_LineUps.id=LineUps.related_column

你可以在你where子句只需添加如where Channel_lineUps.market_id=LineUps.market_id,它應該返回相關數據。

+0

好的謝謝。 Market_ID對於兩者都是通用的。我怎麼會把這個在PHP代碼? – user3137032 2015-02-09 20:53:19

+0

查看我更新的答案。 – Pawan 2015-02-09 20:55:59

+0

嘗試執行以下操作,但收到錯誤消息:$ stmt = $ conn-> prepare(「SELECT Channel_LineUps.channel,Channel_LineUps.description,Channel_LineUps.Tier,LineUps.HD,LineUps.DIG FROM Channel_LineUps,LineUps WHERE Channel_LineUps.Market_ID = LineUps。 Market_ID和Market_ID = 1 ORDER BY Channel_LineUps.Tier ASC「); – user3137032 2015-02-09 21:22:32