Visualizzazione risultati 1 fino 7 di 7

Discussione: [SQL] Query tra due tabelle, e selezionare record con campo minore e numero righe > 0

  1. #1
    L'avatar di matt93
    matt93 non è connesso Utente
    Data registrazione
    01-09-2008
    Messaggi
    241

    Predefinito [SQL] Query tra due tabelle, e selezionare record con campo minore e numero righe > 0

    date 2 tabelle:
    [tbot_accounts]
    account_id user_id account_user account_pass account_server account_time account_lastact account_cookie

    e
    [tbot_tasks]
    task_id account_id ip_id task_action task_server task_user task_param task_time task_done

    Si può fare con una unica query MySql la selezione, dalla tabella tbot_accounts la riga avente account_time minore ed almeno una riga nella tabella tbot_tasks avente come task_done = 0.

    E' possibile? Se no, è possibile mediante PHP+MySql?

  2. #2
    L'avatar di makpaolo
    makpaolo non è connesso Utente storico
    Data registrazione
    08-05-2003
    Residenza
    Brescia ( prov.)
    Messaggi
    9,399

    Predefinito

    dovrebbe essere un qualcosa tipo:
    Codice PHP:
    SELECT a.account_time, a.account_id, a.account_user, a.account_pass, b.task_done FROM tbot_accounts a LFET JOIN tbot_tasks b WHERE b.task_done=0 OR b.task_done > a.account_time
    o comunque molto simile

    ho preso solo alcuni valori della prima tabella, ma dovrebbe funzionare anche a.*
    Se smetti di imparare e evolverti sei morto dentro

  3. #3
    L'avatar di matt93
    matt93 non è connesso Utente
    Data registrazione
    01-09-2008
    Messaggi
    241

    Predefinito

    Mah... sembra non andare... sto continuando a leggermi la documentazione di Join ma non capisco...

    SELECT a.account_time, a.account_id, a.account_user, a.account_pass, b.task_done FROM tbot_accounts a LEFT JOIN tbot_tasks b WHERE b.task_done=0 OR b.task_done > a.account_time

    Non va...

  4. #4
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Codice:
    SELECT tbot_accounts.*, tbot_tasks.* FROM tbot_accounts, tbot_tasks WHERE tbot_accounts.account_time < ?? AND tbot_tasks.task_done = 0
    Magari qualcosa del genere
    Non ho capito molto bene le condizione da effettuare.

  5. #5
    L'avatar di matt93
    matt93 non è connesso Utente
    Data registrazione
    01-09-2008
    Messaggi
    241

    Predefinito

    Aaaallora esplico bene le condizioni con esempi.

    [tbot_accounts]
    Codice:
      	Modifica   	Elimina   	account_id 	user_id 	account_user 	account_pass 	account_server 	account_time 	account_lastact 	account_cookie
      	Modifica   	Elimina   	1  	2  	matt93  	XXXXXX  	speed.travian.it  	1268237560  	1268234025  	T3E=%3D%3DgYwEjZzQTMxITY6czM5QzM2oDOzMjMyozMzADNzI...
    	Modifica 	Elimina 	2 	54 	silvia polvere 	XXXXXX 	s1.travian.it 	1268237602 	1268237602 	T3E=hZTYmVzYmhDNkpTOxAzN4EjNxoTO2QjMxoTMxYzNzIDO2I...
    	Modifica 	Elimina 	3 	57 	b0b m4rLeY 	XXXXX 	speed.travian.it 	1268235753 	1268229255 	T3E=%3DgTM0AjNzEmM1EmOzcjNzIjN6MjMxEjM6IDM1gjMygjN...
    	Modifica 	Elimina 	4 	61 	Server_5 	XXXXX 	s5.travian.it 	1268235559 	1268229791 	T3E=1IWY2E2N0UjYkpTM3YTMzYjO5YDNyEjO0gzN4IjM4YjMxo...
    	Modifica 	Elimina 	5 	63 	Scaredrug 	XXXXXX 	speed.travian.it 	1268236634 	1268235926 	T3E=%3D%3DAZ0UDOiljNyImZ6cjNzgzM2ojNwcTO0ojN1gTNzI...
    [tbot_tasks]
    Codice:
    Testo completo  	task_id 	account_id 	ip_id 	task_action 	task_server 	task_user 	task_param 	task_time 	task_done
    	Modifica 	Elimina 	13 	3 	0 	login 	speed.travian.it 	b0b m4rLeY 	XXXXX 	-1 	0
    	Modifica 	Elimina 	21 	3 	0 	upgradebuild 	speed.travian.it 	b0b m4rLeY 	22 	1268229250 	0
    	Modifica 	Elimina 	25 	2 	13 	login 	s1.travian.it 	silvia polvere 	XXXXXX 	-1 	0
    	Modifica 	Elimina 	30 	5 	0 	upgraderes 	speed.travian.it 	Scaredrug 	8 	1268235257 	0
    Io devo selezionare l'account_id dalla tabella tbot_accounts, avente l'account_time minore, ma che abbia anche almeno un record nella tabella tbot_tasks avente task_done=0.

    In questo caso dovrà ritornare l'account 3
    Ultima modifica di matt93 : 10-03-2010 alle ore 18.19.25

  6. #6
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    I nomi non li ho fatti precisi ma si capisce:

    SELECT Account.* From Accounts INNER JOIN Tasks on Tasks.Idaccount = Accounts.idaccount And task_done=0 Order by account_time

    E fai la limit 1
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  7. #7
    L'avatar di matt93
    matt93 non è connesso Utente
    Data registrazione
    01-09-2008
    Messaggi
    241

    Predefinito

    Sembra perfetta! Grazie Mille!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •