Sql语句加入两个表

时间:2014-04-16 14:22:19

标签: php mysql sql

假设我有两张表

表名组

第1栏:给予者

第2栏:接受者

表名userinfo

第1栏:名称

第2栏:状态

我想从组表中选择给予者,接受者和userinfo.status,其中名称为zakir的给予者或接受者作为名称存在于uerinfo表中的给予者或接受者。

需要帮助为taht查询编写sql语句.. 在此先感谢... :)

5 个答案:

答案 0 :(得分:1)

您所指的内容在SQL语句中也称为INNER JOIN子句。

根据关系,您可以创建INNER JOIN以可能连接两个相同的变量。

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;

摘自W3Schools.com

答案 1 :(得分:1)

尝试以下查询,

SELECT 
gp.giver,gp.acceptor,ui.status 
FROM group as gp JOIN userinfo as ui 
on ui.name = 'zakir' 
AND (gp.giver = 'zakir' or gp.acceptor = 'zakir')

或者在没有加入的情况下尝试这个,

SELECT 
gp.giver,gp.acceptor,ui.status 
FROM group as gp, userinfo as ui 
WHERE ui.name = 'zakir' 
AND (gp.giver = 'zakir' or gp.acceptor = 'zakir')

答案 2 :(得分:1)

试试这个:

SELECT `group`.`giver`, `group`.`acceptor`, `userinfo`.`status`
FROM `group`, `userinfo`
WHERE (`group`.`giver` = 'zakir' OR `group`.`acceptor` = 'zakir')
  AND `userinfo`.`name` = 'zakir'

答案 3 :(得分:1)

select g.giver, g.acceptor u.status
from group g, userinfo u
where u.name = 'zakir'
and (g.giver = u.name or g.acceptor = u.name)

它应该完成工作的一部分。

答案 4 :(得分:1)

这假设您想要给予者和接受者的状态

可能需要对mysql语法进行一些调整

Select giver, g.status, acceptor, a.status 
FROM GROUP 
join userinfo as g on group.giver = g.name
join userinfo as a on group.acceptor = a.name
where (giver = 'zakir' or acceptor = 'zakir')