"event", "status"및 "user"라는 MySQL 데이터베이스에 세 개의 테이블을 설정했습니다. (아래와 같이vb.net 응용 프로그램에 사용할 sql 쿼리 문은 무엇입니까?
이벤트 (표) (아래
STATUS 테이블) (아래
USER 테이블)
및 나는 아래의 SQL 쿼리 문을 사용하여 이벤트 테이블에서 데이터를 얻는다. 사람 이름과 성을 "name"이라는 하나의 변수로 묶은 다음 해당 이름을 각 user_id에 바인딩합니다. 등등. 그러나 이벤트 테이블을 변경하면 변경 한 내용이 표시되지 않습니다. 데이터를 검색하는 방식과 관련이 있다는 것이 확실합니다.
을 :
SELECT CONCAT(u.lastname, ', ', u.firstname) AS Name
, s.message AS Message
, DATE_FORMAT(e.timestamp,'%b %d %Y - %r') AS DateTime
, e.status AS Status
FROM event e
LEFT JOIN status s ON e.message_id = s.message_id
, user u
WHERE(e.user_id = u.user_id)
AND event_id IN(
SELECT MAX(e.event_id) FROM event e
GROUP BY e.user_id)
ORDER BY name
그래서 나는 그 세 개의 테이블의 정보를 가지고이 유사합니다 내 vb.net 프로그램에서 데이터 그리드보기를 생산하는 새로운 SQL 쿼리 문을 필요로 해요
그러나 내 vb.net 프로그램의 데이터 격자보기를 통해 데이터베이스에 대한 변경 사항도 수락합니다. 또는 내 문제가 쿼리 문과 관련이없는 경우이 문제를 해결하는 방법을 알고 싶습니다.
내 데이터베이스의 기본 레이아웃 (개인 정보 제외)을보고 싶다면 다음은 내 데이터베이스의 스크립트입니다.
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `in_out`;
USE `in_out`;
CREATE TABLE `admin_levels` (
`level_id` tinyint(3) unsigned NOT NULL auto_increment,
`title` char(20) NOT NULL default '',
PRIMARY KEY (`level_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE `event` (
`event_id` mediumint(8) unsigned NOT NULL auto_increment,
`user_id` smallint(5) unsigned NOT NULL default '0',
`message_id` mediumint(8) unsigned default '0',
`timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`status` enum('In','Out') NOT NULL default 'In',
`creator` smallint(5) unsigned default NULL,
PRIMARY KEY (`event_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `event` (`event_id`,`user_id`,`message_id`,`timestamp`,`status`,`creator`) VALUES
(1,1,1,'2005-01-17 11:50:00','Out',1),
(2,2,1,'2005-01-17 11:57:00','Out',2),
(3,3,1,'2005-01-17 11:59:00','Out',3),
(4,1,3,'2005-01-17 13:30:00','In',1),
(5,2,3,'2005-01-17 13:30:00','In',2),
(6,3,3,'2005-01-17 13:30:00','In',3),
(7,2,2,'2005-01-17 16:00:00','Out',2),
(8,3,2,'2005-01-17 16:10:00','Out',3),
(9,1,NULL,'2005-01-17 15:19:49','In',1);
CREATE TABLE `groups` (
`group_name` char(20) NOT NULL default '',
`created` datetime NOT NULL default '0000-00-00 00:00:00',
`scope` enum('Public','Private') default NULL,
`deleted` enum('True','False') default NULL,
PRIMARY KEY (`group_name`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE `status` (
`message_id` mediumint(8) unsigned NOT NULL auto_increment,
`user_id` smallint(5) unsigned default NULL,
`message` char(255) NOT NULL default '',
`deleted` enum('True','False') default NULL,
PRIMARY KEY (`message_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `status` (`message_id`,`user_id`,`message`,`deleted`) VALUES
(1,NULL,'Gone to Lunch','False'),
(2,NULL,'Gone For The Day','False'),
(3,NULL,'In Meeting','False');
CREATE TABLE `user` (
`user_id` int(10) unsigned NOT NULL auto_increment,
`lastname` char(40) NOT NULL default '',
`firstname` char(40) NOT NULL default '',
`phone` char(10) NOT NULL default '',
`username` char(16) NOT NULL default '',
`password` char(40) character set latin1 collate latin1_bin NOT NULL default '',
`administrator` enum('TRUE','FALSE') NOT NULL default 'TRUE',
`deleted` enum('TRUE','FALSE') NOT NULL default 'TRUE',
`created` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `user` (`user_id`,`lastname`,`firstname`,`phone`,`username`,`password`,`administrator`,`deleted`,`created`) VALUES
(1,'Hillyer','Mike','4033806535','mike','12345','TRUE','FALSE','2004-11-27 11:41:00'),
(2,'Jones','Tom','4035551212','bob','54321','FALSE','FALSE','2005-01-17 13:52:00'),
(3,'Johnson','Julie','4035551213','julie','weakpass','FALSE','FALSE','2005-01-17 13:55:00');
CREATE TABLE `user_group` (
`group_name` char(20) NOT NULL default '',
`user_id` smallint(5) unsigned NOT NULL default '0',
`level_id` tinyint(3) unsigned default NULL,
PRIMARY KEY (`user_id`,`group_name`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
이 조인 구문을 '89 명시 적 SQL 92 및 암시 적 SQL을 결합하려고, 그 첫 번째입니다! 그것은 거의 추함에 빛난다. – Johan
megaupload와 같은 진부한 다운로드 사이트로 연결하지 마십시오. SO가 게시물이 너무 길다는 것에 대해 불평하지 않는 한, 데이터를 게시하는 것이 훨씬 낫습니다. – Johan
아 및 -1, 복사 가능한 텍스트를 붙여 넣거나 megaupload를 사용하여 SQL '89 및 SQL '92 구문을 혼합 할 수있는 붙여 넣기 그림 용. – Johan