ขอถามเรื่อง Select Command ครับงมมาทั้งวันละครับยังไม่ได้เลยครับ
ขอดู Code และ Fields ของ 2 ตารางครับ
Date :
2014-08-21 15:54:23
By :
Ex-[S]i[L]e[N]t
ตาราง Person
ตาราง Course_subject
ตาราง Course_attend
ประวัติการแก้ไข 2014-08-21 16:28:18
Date :
2014-08-21 16:00:11
By :
ppsonic
Code (PHP)
<tbody>
<? //Query ผู้เข้าร่วมทั้งหมดขึ้นมาโดยเที่ยบกับตาราง course_subject
$sql_attend = "select * from course_attend where course_subject_id=".$rows_edit['course_subject_id']."";
$query_attend = mysql_query($sql_attend);
$j=0;
while($rows_attend = mysql_fetch_array($query_attend)){
$j++;
//Query บุคลากรคนที่เข้าร่วมการอบรมโดยเทียบจากตาราง course_attend
if($rows_attend['person_id']!=""){ //Start if
echo $sql_person = "select * from person where person_id != $rows_attend[person_id] and position_id != 4";
//echo $sql_person = "select * from person where person_id = 9 and person_id = 10 and person_id = 11 and person_id = 12 and position_id != 4";
$query_person = mysql_query($sql_person);
} //End if
while($rows_person = mysql_fetch_array($query_person)){
?>
<tr>
<td align="center"><?=$j?></td>
<td align="left"><?=$rows_person['fullname'];?></td>
<td align="left"></td>
<td align="center"><input type="checkbox" name="chkDel[]" id="chkDel<?=$j;?>" value="<?=$rows_person['person_id']?>" /></td>
</tr>
<? } ?>
<? } ?>
</tbody>
Date :
2014-08-21 16:02:23
By :
ppsonic
ช่วยด้วยครับ
Date :
2014-08-21 16:13:34
By :
ppsonic
Code (PHP)
<tbody>
<?
$course_subject_id = $rows_edit['course_subject_id'];
$sql_attend = "SELECT
*
FROM
person
WHERE
person.position_id IN (
SELECT
person_id
FROM
course_attend
WHERE
course_attend.course_subject_id = $course_subject_id)";
$rows_person = mysql_query($sql_attend);
$j=0;
while($person = mysql_fetch_array($rows_person)){
?>
<tr>
<td align="center"><?=$j?></td>
<td align="left"><?=$person['fullname'];?></td>
<td align="left"></td>
<td align="center"><input type="checkbox" name="chkDel[]" id="chkDel<?=$j;?>" value="<?=$rows_person['person_id']?>" /></td>
</tr>
<?
}
?>
</tbody>
ประวัติการแก้ไข 2014-08-21 16:20:22
Date :
2014-08-21 16:19:29
By :
Krungsri
ลองแบบนี้ดูครับ
Code (SQL)
select t1.person_id,t1.fullanme,t3.course_subject_name,t3.begin_date
course_person t1 left join course_attend t2 on t1.person_id=t2.person_id inner join course_subject t3 on t2.course_subject_id=t3.course_subject_id
where t2.course_subject_id is null
แต่ถ้าจะให้ดีช่วย export ทั้งสามตารางออกมาเป็น sql ให้ได้ทดสอบกันจะดีกว่านี้ครับ
Date :
2014-08-21 18:14:09
By :
cowboycnx
Code (SQL)
select person.person_id from person,Course_attend where person.person_id != Course_attend.person_id
ลองแบบนี้ได้ไหมครับ
Date :
2014-08-21 21:17:24
By :
pooturbo
ตอบความคิดเห็นที่ : 8 เขียนโดย : cowboycnx เมื่อวันที่ 2014-08-21 18:14:09
รายละเอียดของการตอบ ::
ตารางที่
Code (SQL)
-- phpMyAdmin SQL Dump
-- version 2.10.3
-- http://www.phpmyadmin.net
--
-- โฮสต์: localhost
-- เวลาในการสร้าง:
-- รุ่นของเซิร์ฟเวอร์: 5.0.51
-- รุ่นของ PHP: 5.2.6
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- ฐานข้อมูล: `db_training`
--
-- --------------------------------------------------------
--
-- โครงสร้างตาราง `course_attend`
--
CREATE TABLE `course_attend` (
`course_attend_id` int(5) NOT NULL auto_increment,
`course_subject_id` int(5) NOT NULL,
`person_id` int(5) NOT NULL,
`attend_status` tinytext NOT NULL,
PRIMARY KEY (`course_attend_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=23 ;
--
-- dump ตาราง `course_attend`
--
INSERT INTO `course_attend` VALUES (18, 9, 11, 'Y');
INSERT INTO `course_attend` VALUES (17, 9, 9, 'Y');
INSERT INTO `course_attend` VALUES (19, 10, 9, 'Y');
INSERT INTO `course_attend` VALUES (20, 10, 10, 'Y');
INSERT INTO `course_attend` VALUES (21, 10, 11, 'Y');
INSERT INTO `course_attend` VALUES (22, 10, 12, 'Y');
ตารางที่ 2
Code (SQL)
-- phpMyAdmin SQL Dump
-- version 2.10.3
-- http://www.phpmyadmin.net
--
-- โฮสต์: localhost
-- เวลาในการสร้าง:
-- รุ่นของเซิร์ฟเวอร์: 5.0.51
-- รุ่นของ PHP: 5.2.6
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- ฐานข้อมูล: `db_training`
--
-- --------------------------------------------------------
--
-- โครงสร้างตาราง `course_subject`
--
CREATE TABLE `course_subject` (
`course_subject_id` int(10) NOT NULL auto_increment,
`course_subject_name` varchar(200) NOT NULL,
`place_id` int(5) NOT NULL,
`lecturer_id` int(11) NOT NULL,
`begin_date` date NOT NULL,
`end_date` date NOT NULL,
`begin_time` time NOT NULL,
`end_time` time NOT NULL,
`budget` int(10) NOT NULL,
`seat` int(11) NOT NULL,
`day` date NOT NULL,
`date_time` datetime NOT NULL,
PRIMARY KEY (`course_subject_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ;
--
-- dump ตาราง `course_subject`
--
INSERT INTO `course_subject` VALUES (9, 'Security Network System', 2, 1, '2014-08-31', '2014-08-31', '00:00:01', '00:00:13', 0, 0, '2014-08-21', '2014-08-21 11:16:19');
INSERT INTO `course_subject` VALUES (10, 'ธรรมะวาไรตี้', 1, 1, '2014-08-27', '2014-08-31', '00:00:11', '00:00:19', 0, 0, '2014-08-21', '2014-08-21 12:31:59');
ตารางที่ 3
Code (SQL)
-- phpMyAdmin SQL Dump
-- version 2.10.3
-- http://www.phpmyadmin.net
--
-- โฮสต์: localhost
-- เวลาในการสร้าง:
-- รุ่นของเซิร์ฟเวอร์: 5.0.51
-- รุ่นของ PHP: 5.2.6
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- ฐานข้อมูล: `db_training`
--
-- --------------------------------------------------------
--
-- โครงสร้างตาราง `person`
--
CREATE TABLE `person` (
`person_id` int(5) NOT NULL auto_increment,
`position_num` int(5) NOT NULL,
`nametitle_id` int(5) NOT NULL,
`department_id` int(5) NOT NULL,
`position_id` int(5) NOT NULL,
`picture` varchar(80) NOT NULL,
`fullname` varchar(150) NOT NULL,
`email` varchar(20) NOT NULL,
`mobile` varchar(40) NOT NULL,
`status` varchar(10) NOT NULL,
`comment` text NOT NULL,
`day` date NOT NULL,
`date_time` datetime NOT NULL,
`sort` tinyint(4) NOT NULL,
PRIMARY KEY (`person_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=13 ;
--
-- dump ตาราง `person`
--
INSERT INTO `person` VALUES (9, 1, 2, 1, 1, '1407942718_img.jpg', 'รัตนาวรรณ เลิศฤทธิ์ศิริกุล', '', '', 'ประจำอยู่', '', '2014-08-13', '2014-08-13 23:11:58', 1);
INSERT INTO `person` VALUES (10, 2, 2, 3, 1, '1407989418_img.jpg', 'จงจิตร นราชัยวิบูล', '', '', 'ประจำอยู่', '', '2014-08-14', '2014-08-14 12:10:18', 2);
INSERT INTO `person` VALUES (11, 3, 3, 5, 1, '1408095660_img.jpg', 'อัมพร เพชรนุช', '', '', 'ประจำอยู่', '', '2014-08-15', '2014-08-15 17:41:00', 3);
INSERT INTO `person` VALUES (12, 4, 3, 1, 1, '1408097131_img.jpg', 'วัชรา บุญยืน', '', '', 'ประจำอยู่', '', '2014-08-15', '2014-08-15 18:05:31', 4);
Date :
2014-08-22 09:13:44
By :
ppsonic
Code (PHP)
$qr = 'select p.* from person p left join attend a on a.person_id=p.person_id where a.person_id is null ';
ประวัติการแก้ไข 2014-08-22 09:48:05
Date :
2014-08-22 09:47:34
By :
Chaidhanan
Code (SQL)
select p.* # p อ้างจาก person p คำเต็มคือ person as p เฉพาะ mysql เขียนสั้นๆ ได้ person p
from person p # p ตรงนี้เป็น การสร้าง ชื่อเล่น (Alias name) ไว้เรียกใช้ แบบขี้เกียจพิมพ์ชื่อตารางยาวๆ 5555
left join attend a # a อันนี้ก็เหมือนกันกับ p
on a.person_id=p.person_id # เอามาใช้ ตรงนี้ a.person_id = attend.person_id p.person_id = person.person_id
where a.person_id is null # บันทัดนี้ ด้วย
ปล. สำหรับ left join
tb1 left join tb2 หมายความว่า ใช้ record tb1 เป็นหลัก แล้ว เอา tb2 มา join โดยทำตามเงื่อนไขหลัง ON
เหมือนกันกับ
tb1 right join tb2 หมายความว่า record ใช้ tb2 เป็นหลัก แล้ว เอา tb1 มา join โดยทำตามเงื่อนไขหลัง ON
ส่วน tb1 join tb2 หมายความว่า ใช้ทุก record ของทั้งสอง table โดยทำตามเงื่อนไขหลัง ON
ประวัติการแก้ไข 2014-08-22 10:47:49
Date :
2014-08-22 10:41:51
By :
Chaidhanan
Load balance : Server 01