2012-03-09 8 views
1
Table: UserInfoTbl 
======================= 
| username | type | 
======================= 
| user0001 | premium | 
| user0002 | premium | 
| user0003 | normal | 
| user0004 | premium | 
======================= 

Table: UserPvTbl 
======================== 
| username | fUsername | 
======================== 
| user0003 | user0002 | 
| user0002 | user0001 | 
| user0003 | user0001 | 
======================== 

Comment puis-je sélectionner toutes les informations de UserInfoTbl où fUsername de UserPvTbl a le nom d'utilisateur de user0003?Requête MySQL avec plusieurs tables

Edit: Ce qui signifie que je dois récupérer des informations de user0002 et user0001 de la UserInfoTbl

Edit2: Relation entre les deux tables: UserInfoTbl.username = UserPvTbl.username

Répondre

6

DroidMatt pouvez-vous préciser ce que la relation 2 tables sont

UserInfoTbl.username = UserPvTbl.fusername
ou
UserInfoTbl.use rname = UserPvTbl.username

Vikram est juste en supposant que le premier. sinon tu veux ça.

SELECT * 
FROM UserInfoTbl, UserPvTbl 
WHERE UserPvTbl.username = UserInfoTbl.username 
AND UserPvTbl.username = 'user0003' 
+0

UserInfoTbl.username = UserPvTbl.username est le bon. Désolé j'ai oublié de clarifier la relation. – DroidMatt

+0

Note: Vikram vient de renommer/raccourcir les noms des tables. UserInfoTbl = U et UserPvTbl = UP – jammin

+0

Merci! Cela fonctionne parfaitement. – DroidMatt

0
select U.* 
from UserInfoTbl U 
inner join UserPvTbl UP 
on U.username = UP.fusername 
where UP.username = 'user0003' 
+0

Bonjour Vikram. Cela vous dérange-t-il d'expliquer sur U. *, UP et 'from UserInfoTbl U'? Je suis un peu perdu ici. – DroidMatt

+0

U est le nom court pour 'UserInfoTbl', UP pour' UserPvTbl' et U. * retournera toute la colonne de 'UserInfoTbl' – Vikram

+0

merci de clarifier. – DroidMatt

1

utilisation comme:

select * from UserInfoTbl inner join UserPvTbl on UserInfoTbl.username=UserPvTbl.fusename 
where UserPvTbl.usename='user0003'