[英]Join three tables in one sql query
我有一個包含兩個表的查詢,我需要再加入一個表,以便獲得與訂單相對應的產品模型。
我到目前為止所擁有的是
$sql = "SELECT
o.order_id,
o.name,
o.value,
GROUP_CONCAT(o.order_id, o.name, o.value SEPARATOR ',') AS Options
FROM `order_option` AS o
LEFT JOIN `order` AS oo on o.order_id = oo.order_id
where oo.order_status_id = 2
group by o.order_id";
mysql_query("SET NAMES 'utf8'");
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result))
{
$options=$row['Options'];
print "$options";
PRINT "<br>-------------------<br>";
}
現在,我有了第三個表,其中包含每個訂單的產品型號。 該表稱為“ order_product”,它具有兩個字段“ order_id”和“ model”(每個訂單一個記錄)。
現在的結果是
ID,選項1:價值,選項2:值
我要完成的是
ID,MODEL,選項1:價值,選項2:值
模型應來自第三個表“ order_product”的位置
任何建議都將受到高度贊賞。 謝謝
這樣嘗試
SELECT table1.* from table1
JOIN table2 as lnk1 on table1.id = table2.tab1_id AND
JOIN table3 as lnk2 on table2.id = table3.tab2_id -->here you can use table1 as to join also
但是請記住,由於某些表的聯接的繼承關系可能與先前的表有關,但可能尚未聯接
$sql = "SELECT
o.order_id,
o.name,
o.value,
GROUP_CONCAT(o.order_id, o.name, o.value SEPARATOR ',') AS Options,
op.model
FROM `order_option` AS o
INNER JOIN `order` AS oo on o.order_id = oo.order_id
INNER JOIN `order_product` AS op on oo.order_id = op.order_id
where oo.order_status_id = 2
group by o.order_id";
像那樣 ?
只需對您的訂單ID號進行額外的聯接,因為它會鏈接到所有表格。
這應該達到以下目的:
SELECT
o.order_id,
order_product.model,
o.name,
o.value,
GROUP_CONCAT(o.order_id, o.name, o.value SEPARATOR ',') AS Options
FROM `order_option` AS o
LEFT JOIN `order` AS oo on o.order_id = oo.order_id
LEFT JOIN order_product ON o.order_id = order_product.order_id
where oo.order_status_id = 2
group by o.order_id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.