SELECT
u.*,
GROUP_CONCAT(DISTINCT f.shot_id SEPARATOR ",") AS ownFavorites,
GROUP_CONCAT(DISTINCT st.shot_id SEPARATOR ",") AS ownStars,
GROUP_CONCAT(DISTINCT s.id SEPARATOR ",") AS ownShots,
(SELECT AVG(p.count)
FROM points p
LEFT JOIN shots s ON s.user_id = **U.ID** AND p.shot_id = s.id
WHERE date >= DATE_SUB(CURDATE(),INTERVAL 2 DAY)
) AS attention,
(SELECT SUM(p.count)
FROM points p
LEFT JOIN shots s ON s.user_id = **U.ID** AND s.id = p.shot_id
) AS popularity
FROM users u
LEFT OUTER JOIN shots s ON s.user_id = u.id
LEFT OUTER JOIN favorites f ON f.user_id = u.id
LEFT OUTER JOIN stars st ON st.user_id = u.id
WHERE u.username = ?;
我有兩個子查詢使用參數u.id(在查詢中標記)。如果我做了這樣的SQL它會產生財產以後這樣的:傳遞值到子部分
#1054 - Unknown column 'u.id' in 'on clause'
手段,u.id
ID沒有在SubSelects
定義。但在MainSelect
我從users
表中選擇,其中u.id
存在。
對我的問題:有沒有辦法將所選的u.id
值通過普通sql傳遞給Subselects
?
這是不可能使用子查詢與一列從外部查詢的連接條件。 – Gervs 2014-09-24 17:58:58