2012-12-22 73 views
0

我需要合併這個查詢如何合併這些SQL查詢

SELECT 
*, 
(SELECT 
     CONCAT(c.firstname, ' ', c.lastname) 
    FROM 
     wwwpser_customer c 
    WHERE 
     c.customer_id = o.customer_id) AS customer 
FROM 
wwwpser_order o 
WHERE 
o.order_id = '20' 

SELECT 
orders . *, wwwpser_comuna.provincia_id AS payment_provincia_id 
FROM 
wwwpser_order orders 
    LEFT JOIN 
wwwpser_comuna ON (orders.payment_city = wwwpser_comuna.comuna_id) 

SQL語法是新的我,所以我需要這方面的幫助不大,THX

+0

中有一些有用的例子你是什麼意思的「合併」?一個'聯盟'?加入兩個查詢?或者找到一些類似於兩者結合的類似查詢? –

+0

我需要用第一個「添加」第二個sql select。這就像第一個sql是原始的,但我需要修改以獲取provincia_id –

回答

0

看起來這應該是你的解決方案。

SELECT 
o.*,            -- modified (qualified the 
(SELECT            -- asterisk) 
     CONCAT(c.firstname, ' ', c.lastname) 
    FROM 
     wwwpser_customer c 
    WHERE 
     c.customer_id = o.customer_id) AS customer, 
c.provincia_id AS payment_provincia_id    -- added from second query 
FROM 
wwwpser_order o 
    LEFT JOIN          -- added from second query 
wwwpser_comuna c ON (o.payment_city = c.comuna_id) -- added from second query 
WHERE 
o.order_id = '20' 

雖然我強烈建議學習一般的SQL語法。在MySQL tutorials

+0

優秀!!我會遵循您的建議。 –

1
SELECT CONCAT(c.firstname, ' ', c.lastname) 
,  wc.provincia_id 
,  o.* 
FROM wwwpser_order o 
LEFT JOIN 
     wwwpser_customer c 
ON  c.customer_id = o.customer_id 
LEFT JOIN 
     wwwpser_comuna wc 
ON  wc.comuna_id = o.payment_city 
WHERE o.order_id = 20 
+0

值得一提的是,這個解決方案雖然看起來正確,但卻增加了一些對OP原始查詢的重構。鑑於這是一個初學者的問題,我認爲1-2條評論可能會有所幫助 –