2015-07-11 179 views
-1

有兩個mysql表games_serverorders_order。只有當該表中的值id等於第二個表orders_order的值server_id時,我需要從第一個表中選擇名爲full_address的值。如果一個值等於另一個表中的值,請從其中一個表中選擇一個值

但不只是任何價值。它必須是WHERE service_type = 'be_first' AND status = 'running'

我讀到這裏可能的解決方案,並試圖這樣的事情:

SELECT server_address 
FROM games_server 
WHERE id IN 
    SELECT server_id 
    FROM orders_order 
    WHERE service_type = 'be_first' 
     AND status = 'running' 
ORDER BY updated DESC 

,但沒有奏效。我對mysql不太好。請幫忙。

回答

0
SELECT a.thing you want to select 
    FROM table you want to select from AS a 
    JOIN the other table AS b 
    ON b.some column = a.some column 
WHERE some criterion is met 
    AND another criterion is met 
+0

可能是一個想法,在繼續之前閱讀一本書或基本教程。 – Strawberry

-1
mysql_query("SELECT a.'full_address' FROM 'games_server' AS 'a' JOIN 'orders_order' AS 'b' ON b.'server_id' = a.'id' WHERE service_type = 'be_first' AND status = 'running'); 

是你有個大氣壓的代碼,我敢肯定它拋出一個錯誤。嘗試刪除AS關鍵字,以便它看起來像這樣:

mysql_query("SELECT a.'full_address' FROM 'games_server' a JOIN 'orders_order' b ON b.'server_id' = a.'id' WHERE service_type = 'be_first' AND status = 'running'); 

要讀出mysql的網站上的以下文章:https://dev.mysql.com/doc/refman/5.0/en/problems-with-alias.html

0

嘗試:

mysql_query("SELECT a.full_address FROM games_server AS a JOIN orders_order AS b ON b.server_id = a.id WHERE service_type = 'be_first' AND status = 'running'"); 

然後通過添加順序:

mysql_query("SELECT a.full_address FROM games_server AS a JOIN orders_order AS b ON b.server_id = a.id WHERE service_type = 'be_first' AND status = 'running' ORDER BY column_name"); 
+0

你太棒了!謝謝!完美工作。 –

+0

很高興幫助。乾杯。 –

相關問題