2011-12-13 15 views
7

Ho due tabelle, una tabella è chiamata queuelist e l'altra è informazioni sulla chiamata. Nella tabella queuelist elenca solo ID diversi. Sto cercando di ottenere il 'clientID' da quella tabella e abbinarlo con l''ID' nell'altra tabella che contiene tutte le informazioni e visualizzarlo nuovamente nella pagina. Ecco come le tabelle di:PHP MySQL Seleziona l'ID da una tabella e le informazioni da un'altra tabella

Tabella - queuelist

ID | clientID 
------------- 
1 | 589 
2 | 254 
3 | 486 

Tabella - informazioni

ID | Name | Phone 
-------------------- 
256 | Bob | 5551231234 
486 | Jack | 5551231234 
589 | Jill | 5551231234 

risposta

5

Questo è quello che chiamano tavole di giunzione, è necessario utilizzare una query come questa:

SELECT i.ID, i.Name, i.Phone FROM `queuelist` AS q 
LEFT JOIN `info` AS i ON (
    q.clientID = i.ID 
); 

sto usando pseudonimi per la notazione più breve nella query precedente (queuelist diventa q e informazioni diventa i) e quindi impostare la condizione di join (il bit tra ON()) per essere il clientID dalla tabella queuelist dovrebbe corrispondere all'ID nella tabella delle informazioni.

Vedere anche http://dev.mysql.com/doc/refman/5.0/en/join.html per ulteriori dettagli.

4

È necessario utilizzare un inner join

select * from queuelist as ql inner join info as i on ql.clientID = i.ID 

Anche se si potrebbe desiderare di sostituire * con nomi di campo specifici, ad es.

+0

cura. Anche se dovrebbe essere "anche ql" invece di "alseo q1" ;-) – TommyBs

1

Bene, non vedo alcuna difficoltà in questo utilizzo di un JOIN.

SELECT * FROM queuelist JOIN info ON clientID = info.ID WHERE queuelist.ID = 2 
0

"Dove" sarebbe un'altra opzione.

SELECT Name, Phone FROM queuelist,info WHERE clientID = ID 

Supponendo che si desidera solo il nome e il telefono

Problemi correlati