我有选择问题。
我设法写了一个类似的东西的查询,但我只能在我需要组成一个团队但有两个名字后才能提取数据
我有一个问题要写一个问题,我需要选择一些关于这种风格的东西
team_id | player1 | player2 | position | category
1 | John Newman | Andy Roddick | 1 | 1
2 | Roger Federer | Rafael Nadal | 1 | 1
我有两个桌子/一个包含球员,第二个包含球队出席/
CREATE TABLE IF NOT EXISTS `atendance` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`player1` int(11) NOT NULL,
`player2` int(11) NOT NULL,
`position` int(11) NOT NULL,
`category` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci AUTO_INCREMENT=22 ;
CREATE TABLE IF NOT EXISTS `players` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(12) COLLATE utf8_czech_ci NOT NULL,
`surname` varchar(24) COLLATE utf8_czech_ci NOT NULL,
`datum_n` date NOT NULL,
`klub` varchar(60) COLLATE utf8_czech_ci NOT NULL,
`tel` varchar(12) COLLATE utf8_czech_ci NOT NULL,
`mail` varchar(32) COLLATE utf8_czech_ci NOT NULL,
`cas` text COLLATE utf8_czech_ci NOT NULL,
`foto` text COLLATE utf8_czech_ci NOT NULL,
`pass` text COLLATE utf8_czech_ci NOT NULL,
`is_active` tinyint(1) NOT NULL DEFAULT '0',
`valid_from` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`valid_until` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`is_admin` tinyint(1) NOT NULL DEFAULT '0',
`pohlavie` varchar(6) COLLATE utf8_czech_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci AUTO_INCREMENT=25 ;
答案 0 :(得分:0)
据我所知,所有必需的数据都在第一张表中。你只需要开火,
SELECT ID, PLAYER1, PLAYER2, POSITION, CATEGORY FROM ATENDANCE
请注意,代替CREATE
命令提供该表的输出结果,因为您希望构建SELECT
语句。它更容易理解。
答案 1 :(得分:0)
我认为您需要使用JOIN
,尤其是LEFT JOIN
,例如:
SELECT t.id, p1.name, p2.name, t.position, t.category
FROM atendance t
LEFT JOIN players p1
ON t.player1 = p1.id
LEFT JOIN players p2
ON t.player2 = p2.id