[PDO]DISTINCT jak pobrać z dwóch fieldów?

0

witam otóż główkuje jakieś 2-3 godziny nad tym i nie wiem jak to zrobić zeby tylko 1 wynik pobrać z bazy.

oto kod:

	$Tests = $Connect_Server->prepare('SELECT DISTINCT target_id, account_id FROM website_private_messages WHERE account_id = :account_id or target_id = :account_id ORDER BY account_id DESC');
	$Tests->bindValue(':account_id', $_SESSION['logged'], PDO::PARAM_INT);
	$Tests->execute();

chcę pobrać tylko 1 wynik gdzię session['logged']
które może wystąpić w target_id i account_id w website_private_messages

może ktoś z wasz będzie wiedział co jest nie tak.

0

LIMIT 1

0

Użyj GROUP BY, powinno pomóc

0
TomRZ napisał(a):

Użyj GROUP BY, powinno pomóc

bez zmian dalej pokazuje więcej wyników

ma ktoś jeszcze jakieś pomysły?

1
SELECT DISTINCT case when target_id>account_id then target_id else account_id end target_id, case when target_id>account_id then account_id else target_id end account_id FROM website_private_messages WHERE :account_id IN (target_id, account_id ) ORDER BY account_id DESC
0

A jakiś przykład z danymi? Bo z Twojego opisu nie rozumiem jak ma się to zachowywać dla takich danych wejściowych:

ACCOUNT_ID | TARGET_ID
-----------+----------
1          | 1
1          | 2
2          | 1
2          | null
3          | 2

Co ma zwrócić dla logged=2 ?

0
Marcin.Miga napisał(a):
SELECT DISTINCT case when target_id>account_id then target_id else account_id end target_id, case when target_id>account_id then account_id else target_id end account_id FROM website_private_messages WHERE :account_id IN (target_id, account_id ) ORDER BY account_id DESC

dobra działa jednak dzieki wielkie!

1 użytkowników online, w tym zalogowanych: 0, gości: 1