Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[MYSQL] Boolean select

Pagina: 1
Acties:

  • Wilde
  • Registratie: December 2000
  • Niet online
Ik heb binnen MYSql twee tabellen: personen en vrienden.

De vrienden tabel is een n-m relatietabel waarin wordt aangegeven welk persoon (id) met welk persoon (fk_id) bevriend is.

Nou wil ik een select doet uit personen (in principe select *) met daarin een extra kolom die 0 of 1 is.. 0 als de persoon in de rij geen vriend is van persoon met id X(x kan opgegeven worden in de query) en een 1 als dit wel zo is.

Het duffe is, ik heb dit al eerder moeten doen in MSSQL en toen ben ik er met een SELECT AS (0..1) of iets in die trant uitgekomen. Het moet nu in MYSQL en ik zoek me aardig rot op inet om dit voor elkaar te krijgen. Iemand die me een duwtje in de juiste richting kan geven?

Specs: 9800X3D, RTX 5090, 64GB, VR: Pimax Crystal-Light


  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 00:45

The Eagle

I wear my sunglasses at night

Select a from b where exists (select 'x' from table where friend=y and b.id =friend.id).
Zoiets? :)

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


  • Jurgle
  • Registratie: Februari 2003
  • Laatst online: 20-11 15:05

Jurgle

100% Compatible

Zoiets als dit?

SQL:
1
2
3
4
5
SELECT p.*, IF(v.id > 0, 1, 0) AS is_vriend
FROM `personen` p
LEFT JOIN `vrienden` v
    ON p.id = v.fk_id AND v.id = [X]
ORDER BY id


Tabellen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
personen
+----+---------+
| id | naam    |
+----+---------+
| 1  | Sjors   |
| 2  | Sjimmie |
| 3  | Suske   |
| 4  | Wiske   |
+----+---------+

vrienden
+----+-------+
| id | fk_id |
+----+-------+
| 1  | 2     |
| 2  | 1     |
| 3  | 4     |
| 4  | 3     |
+----+-------+

[ Voor 24% gewijzigd door Jurgle op 29-10-2014 09:33 . Reden: Betere query (sneller, gebruikmakend van evt indexes, etc) ]

My opinions may have changed but not the fact that I am right ― Ashleigh Brilliant


  • Wilde
  • Registratie: December 2000
  • Niet online
Thanks! Dit is inderdaad wat ik bedoelde. Weer een leermomentje met het IF statement. Kan ik wat mee! :)

Specs: 9800X3D, RTX 5090, 64GB, VR: Pimax Crystal-Light