0
這是被在querys使用的表:添加新的行集合結果設置爲現有的查詢
HELPS(領域相關的:ID,id_user)
FRIENDS
SHARED_HELPS
所以:
這個查詢(作品)返回人從用戶的幫助和所有其他用戶,他引用:
$sql = 'SELECT
helps.*,CASE WHEN shared_helps.userid IS NULL THEN 0 ELSE shared_helps.userid END as is_shared, CASE WHEN shared_helps.userid IS NULL THEN helps.fecha ELSE shared_helps.fecha END as ffecha
FROM
helps
LEFT JOIN shared_helps
ON shared_helps.helpid = helps.id
AND shared_helps.userid = '.$value.'
WHERE (helps.id_user = '.$value.' AND helps.id_group <= 0) OR shared_helps.userid = '.$value.'
ORDER BY ffecha DESC';
而且,這個查詢(作品)列出所有從用戶和他的朋友的幫助
$sql = 'SELECT id, title, content, id_user, id_group, id_type, id_loc, avatar, attached, fecha, likes, lan, needsCount, recivedCount
FROM
(
SELECT *, 1 as OrderBy
FROM helps
WHERE id_user = '.$value.' or id_user IN (SELECT helpid FROM shared_helps WHERE userid = '.$value.')
UNION
SELECT h.*, 2 as OrderBy
FROM (
SELECT id AS friendsId,
CASE followerid
WHEN '.$value.' THEN followingid
ELSE followerid
END AS friend_id
FROM friends
WHERE acepted = 1 AND
(followerid ='.$value.' OR followingid = '.$value.')
) AS f
INNER JOIN helps AS h
ON h.id_user = f.friend_id where id_group < 0
) x
ORDER BY ID DESC
';
事情是對最後一個,我需要添加來自其他用戶但他引用(就像兩個查詢我張貼的混合體。)
我嘗試這樣做:
$sql = 'SELECT id, title, content, id_user, id_group, id_type, id_loc, avatar, attached, fecha, likes, lan, needsCount, recivedCount,
CASE WHEN shared_helps.userid IS NULL THEN helps.fecha ELSE shared_helps.fecha END as ffecha
FROM
(
SELECT *, 1 as OrderBy
FROM helps
WHERE id_user = '.$value.' or id_user IN (SELECT helpid FROM shared_helps WHERE userid = '.$value.')
UNION
SELECT h.*, 2 as OrderBy
FROM (
SELECT id AS friendsId,
CASE followerid
WHEN '.$value.' THEN followingid
ELSE followerid
END AS friend_id
FROM friends
WHERE acepted = 1 AND
(followerid ='.$value.' OR followingid = '.$value.')
) AS f
INNER JOIN helps AS h
ON h.id_user = f.friend_id where id_group < 0
) x
LEFT JOIN shared_helps
ON shared_helps.helpid = x.id
AND shared_helps.userid = '.$value.'
WHERE (x.id_user = '.$value.' AND helps.id_group <= 0) OR shared_helps.userid = '.$value.'
ORDER BY ffecha DESC
';
但我得到:
Column 'id' in field list is ambiguous
但是,這顯然是出於我的知識..任何人都可以看到ligth?
我解決它通過x.id,x.title,......你認爲沒關係? -EDIT-哈!你在編輯時,我正在打字...試圖嘗試,它的工作原理!謝謝! –
@ToniMichelCaubet正確。使用表或子查詢的「別名」。 –