假设我有两个表sql语句连接两个表
表名组
列1:送礼者
列2:接受
表名用户信息
列1 :名称
第2列:状态
我想选择发信人,接受人和userinfo.status从组表中发送者或接受者的名字是zakir给予者或接受者存在于uerinfo表作为名称。
需要帮助写SQL语句查询taht .. 在此先感谢... :)
假设我有两个表sql语句连接两个表
表名组
列1:送礼者
列2:接受
表名用户信息
列1 :名称
第2列:状态
我想选择发信人,接受人和userinfo.status从组表中发送者或接受者的名字是zakir给予者或接受者存在于uerinfo表作为名称。
需要帮助写SQL语句查询taht .. 在此先感谢... :)
什么你是指也被称为在SQL语句中的INNER JOIN条款。
根据关系,您可以创建一个INNER JOIN来连接两个相同的变量。
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;
提取尝试下面的查询,
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')
试试这个:
SELECT `group`.`giver`, `group`.`acceptor`, `userinfo`.`status`
FROM `group`, `userinfo`
WHERE (`group`.`giver` = 'zakir' OR `group`.`acceptor` = 'zakir')
AND `userinfo`.`name` = 'zakir'
个人。请不要一次又一次发布相同的答案。请检查以前的答案,然后发布自己的答案。 –
@HarishChinju你如何看待我的答案与你的相似?我逃脱了表和列名称,因为它们中的一些是保留关键字。你没有。另外你的答案比我早不到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)
它应该做一份工作。
伙计们..请不要一次又一次发布相同的答案。请检查以前的答案,然后发布自己的答案。 –
这是假设你要为送礼者和受体
可能需要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')
哪里是关键加入一些调整两个状态? –
你有什么尝试?那两张桌子之间有什么关系? – Andrew
是的先生我编辑我的帖子,你可能会看到.. :) 是先生userinfo表名称和组表格接受器或赠送者是相同的。 例如,如果userinfo表名是zakir,那么groups表接受者或授予者也可能是zakir – user3148422