Обединяване на базите

niksdevil

Registered
Здравейте , как мога да взема информацията потребителя дали името му е в таблицата
Код:
VIP
, а да взима информация за името , годините от таблицата
Код:
users
?
 
VIP :
Код:
CREATE TABLE `vip` (
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(25) collate utf8_unicode_ci NOT NULL,
  `srok` text collate utf8_unicode_ci NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=20 ;

users
Код:
CREATE TABLE `users` (
  `username` varchar(30) collate utf8_unicode_ci NOT NULL,
  `password` varchar(32) collate utf8_unicode_ci default NULL,
  `userid` varchar(32) collate utf8_unicode_ci default NULL,
  `userlevel` tinyint(1) unsigned NOT NULL,
  `email` varchar(50) collate utf8_unicode_ci default NULL,
  `timestamp` int(11) unsigned NOT NULL,
  `fname` varchar(25) collate utf8_unicode_ci NOT NULL,
  `lname` varchar(25) collate utf8_unicode_ci NOT NULL,
  `sex` varchar(1) collate utf8_unicode_ci NOT NULL,
  `pic` text collate utf8_unicode_ci NOT NULL,
  `city` varchar(50) collate utf8_unicode_ci NOT NULL,
  `points` int(11) NOT NULL,
  `sport` text collate utf8_unicode_ci NOT NULL,
  `movie` text collate utf8_unicode_ci NOT NULL,
  `smoke` text collate utf8_unicode_ci NOT NULL,
  `drink` text collate utf8_unicode_ci NOT NULL,
  `book` text collate utf8_unicode_ci NOT NULL,
  `eyes` text collate utf8_unicode_ci NOT NULL,
  `rast` text collate utf8_unicode_ci NOT NULL,
  `teglo` text collate utf8_unicode_ci NOT NULL,
  `music` text collate utf8_unicode_ci NOT NULL,
  `info` text collate utf8_unicode_ci NOT NULL,
  `day` text collate utf8_unicode_ci NOT NULL,
  `month` text collate utf8_unicode_ci NOT NULL,
  `year` text collate utf8_unicode_ci NOT NULL,
  `age` int(11) NOT NULL,
  `sms` int(11) NOT NULL,
  `av` text collate utf8_unicode_ci NOT NULL,
  `click` int(11) NOT NULL,
  PRIMARY KEY  (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

от users ще се вадят само потребителското име и годините
 
Значи имаш голяма грешка при структурата на таблиците, външен ключ от текстов тип не трябва да имаш.Правят се две полета от тип инт които свързват едната с другата таблица.Т.е. в таблицата VIP вместо username трябва да имаш user_id.

Ето и заявката, но ще счупиш SQL сървъра при повече данни.

[sql]SELECT users.username, users.age,vip.id FROM users
LEFT JOIN vip ON(users.username = vip.username) WHERE users.id = ?;
[/sql]
Ако го има в вип таблицата vip.id, ще е някакво число, ако ли не ще е NULL.[/sql]
 

Back
Горе