簡體   English   中英

MySQL:LEFT JOIN中的子查詢

[英]MySQL: subquery in LEFT JOIN

我有個問題。 我想在LEFT JOIN .. ON使用子查詢tm LEFT JOIN .. ON

SELECT t.*, 
    (SELECT `uid` FROM `truck_transport` tm WHERE tm.from = t.station ORDER BY RAND() LIMIT 1) as tm 
FROM `truck_trailer` t 
LEFT JOIN `truck_transport` tm2 ON (tm2.uid = tm) ...

如果我在FROM使用子查詢,則結果總是相同。

對不起,我的語言:/

嘗試這個

SELECT t.*, tm.uid
FROM `truck_trailer` t 
    LEFT JOIN (SELECT `uid` FROM `truck_transport` ORDER BY RAND() LIMIT 1) as tm 
    ON (tm.uid = t.station)

mynawaz已編寫了正確的查詢。

由於limit 1您的子查詢將始終僅返回一個結果。 如果只希望得到一個結果,則使用JOIN而不是LEFT JOIN 因為左連接表總是返回匹配的行,而與右側表的NULL不匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM