クエリで使用されるテーブルは次のとおりです。
ヘルプ(関連するフィールド:id、id_user)
友達
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
';
最後に、他のユーザーからのものを追加する必要がありますが、彼は参照しました(私が投稿した2つのクエリの組み合わせのようなものです)。
私はこれを試しました:
$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を見せてもらえますか?