Comment puis-je get des colonnes d'identifiants distincts pour éviter les résultats répétés?

SELECT DISTINCT id, name, floors, rooms, bathrooms, singlebeds, doublebeds, tollboys, tvs, conditontypes_id, roomtypes_id, roomstates_id, internet, carstop, elevator, cleanservice, phoneguide, botagaz, magazeen, maqroeev, salahdir, clotheswasher, foodlist, makoa, thalaga, foodtable, saala, kitchen, notations, stopstate, contract_id, enterstate, aqed_id, aqedtype, datefrom, dateto, daynumber, monthnumber, room_name, roomprice, cus_name, company, discounttitle, discounttype, discountprice, total, totalend, aqed_note, addeddate, entertime, state, nationalname, sejelnumber, diffarest, diffbusy, dayprice, monthprice, hourprice FROM rooms_monitorview WHERE (state IS NULL) OR (state = 'محجوز') AND (diffarest < 0) 

C'est le résultat

 12 102 0 0 0 0 0 0 0 1 1 1 False False False False False False False False False False False False False False False False .... False 0 شاغر NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 14 104 0 0 0 0 0 0 0 1 1 1 False False False False False False False False False False False False False False False False .... False 0 شاغر NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 15 105 0 0 0 0 0 0 0 1 1 1 False False False False False False False False False False False False False False False False .... False 0 شاغر 15 يومي 25/09/2017 02/10/2017 10 0 105 0.0000 سالم علي محمد بدون بدون $ 0.0000 0.0000 0.0000 ............ 22/09/2017 10:35:24 م NULL محجوز سعودي 123456 -2 -9 0.00 0.00 0.00 15 105 0 0 0 0 0 0 0 1 1 1 False False False False False False False False False False False False False False False False .... False 0 شاغر 16 يومي 28/09/2017 28/09/2017 5 0 105 0.0000 سالم علي محمد بدون بدون $ 0.0000 0.0000 0.0000 ............ 23/09/2017 01:31:21 ص NULL محجوز سعودي 123456 -5 -5 0.00 0.00 0.00 16 106 0 0 0 0 0 0 0 1 1 1 False False False False False False False False False False False False False False False False .... False 0 شاغر NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 

J'ai besoin de id=15 – comment puis-je faire cela?

Il y a deux résultats différents, -3 et -9

Utilisez row_number() si vous ne voulez qu'une seule ligne par identifiant:

 SELECT v.* FROM (SELECT v.*, ROW_NUMBER() OVER (PARTITION BY id ORDER BY id) as seqnum FROM rooms_monitorview WHERE (state IS NULL OR state = 'محجوز') AND diffarest < 0 ) v WHERE seqnum = 1; 

J'ai remarqué que j'ai ajouté des parenthèses aux conditions WHERE . Cette logique est légèrement différente de votre logique, mais cela pourrait être ce que vous voulez vraiment.