2011-12-13 15 views
7

Mam dwie tabele, jedna tabela nazywa się que queist, a druga to informacje o połączeniu. W tabeli queuelist wyświetla listę różnych identyfikatorów. Próbuję pobrać "clientID" z tej tabeli i dopasować go do "ID" w drugiej tabeli, która zawiera wszystkie informacje i wyświetla je z powrotem na stronie. Oto jak stoły wyglądają:PHP MySQL Wybierz identyfikator z jednej tabeli i informacje z innej tabeli

stołowy - queuelist

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

Tabela - info

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

Odpowiedz

5

To co nazywają łączenia tabel, należy użyć kwerendy tak:

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

Używam aliasy dla krótszej notacji w powyższym zapytaniu (queuelist staje q i informacji staje się ja), a następnie ustawić warunek łączenia (bit pomiędzy ON()), który ma być identyfikatorem klienta z tabeli queend, powinien pasować do identyfikatora w tabeli informacyjnej.

Aby uzyskać więcej informacji, zobacz także artykuł http://dev.mysql.com/doc/refman/5.0/en/join.html.

4

Trzeba użyć sprzężenie wewnętrzne

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

Choć może chcesz zastąp * konkretnymi nazwami pól, np.

select ql.clientID, i.fieldname FROM.... 
+0

edytowany. Chociaż powinno być "również ql" zamiast "alseo q1" ;-) – TommyBs

1

Nie widzę trudności w korzystaniu z JOIN.

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

"Gdzie" byłoby inną opcją.

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

Zakładając, że chcemy tylko nazwisko i telefon

Powiązane problemy