我问一个相关的问题一个星期前,但这里是我面临的另一个问题。 我觉得像这样的小白,但我想这是最好问和学习,而不是永远也学不会。
这里是我的三个表:
战士表
fighter_id, name
事件表
event_id, event_name, event_date
战斗表
fight_id, fighter_a, fighter_b, winner, method, event
所以在打架表,fighter_a,fighter_b和赢家是对应于战斗机表fighter_id整数。
我基本上是基于fighter_id页面检索数据。
我试图与战斗机,其中包括他的对手的名字,结果(赢,损失,画,或NC),方法,EVENT_NAME和EVENT_DATE的每次吵架创建行。 如果是平局或没有比赛,它会说画或方法列没有比赛,而获胜者将是NULL。
我看着这些MySQL的IF语句,并创造了什么是合适的标准,以确定一个战士是否赢了,输了,拿到一场平局,或没有比赛。 它似乎并不像这些语句可以在PHP的mysql_query中使用,但至少它给你的标准的想法。 我知道我必须内部连接这3个表在一起,但我不知道如何确定赢家/失败者的/ etc ...因为fighter_a或fighter_b可分出胜负,或者两者都不可以。 我不知道如何处理在MySQL查询这些IF语句。
IF winner IS NOT NULL AND winner=fighter_id THEN SET record='win';
ELSEIF winner IS NOT NULL AND winner<>fighter_id THEN SET record='loss';
ELSEIF winner IS NULL AND method='Draw' THEN SET record='draw';
ELSEIF winner IS NULL AND method='No Contest' THEN SET record='no contest';
ELSE SET record='';
ELSE IF;
我试图让一个表中的结果是这个样子: http://en.wikipedia.org/wiki/Fedor_Emelianenko#Mixed_martial_arts_record