简体   繁体   English

SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id WHERE子句

[英]SELECT * FROM table1 INNER JOIN table2 ON table1.id=table2.id WHERE clause

I have a problem regarding in joining two tables with a WHERE clause on it which involves monthname(date)='$month'.. 我有一个关于在两个表上加入WHERE子句的问题,它涉及monthname(date)='$ month'。

**tbl_dv**
dv_id, number, net, respo, date_added 

**tbl_payroll**
pr_id, dv_id, number, pr_date, roll1, roll2, roll3, roll4, roll5, roll6 date_added.

I want to add up the column ROLLS and view it on the view.php. 我想添加ROLLS列并在view.php上查看。 Like: $total=(roll1 + roll2 + roll3 + roll4 + roll5 + roll6); 像这样:$ total =(roll1 + roll2 + roll3 + roll4 + roll5 + roll6); How can do it and insert it in unique way. 如何做到并以独特的方式将其插入。

$viewrecord = "SELECT * FROM tbl_dv WHERE respo='".mysql_real_escape_string($data[0])."' && year(date_added)='$year' && month(date_added)='$month'";

您可以-

$viewrecord = "SELECT *, (roll1 + roll2 + roll3 + roll4 + roll5 + roll6) as total FROM tbl_dv join tbl_payroll on tbl_dv.dv_id = tbl_payroll.dv_id WHERE respo='".mysql_real_escape_string($data[0])."' && year(date_added)='$year' && month(date_added)='$month'";
<?php require_once('../includes/connection.php');?>
<?php require_once('../includes/header.php');?>

<?php
$color="1";
$respo = $_GET['respo'];
$data = explode("+", $respo);
$month = date("m", strtotime($data[1])) . "<br />";
$year = date("Y", strtotime($data[1])) . "<br />";

**$viewrecord = "SELECT *, (pr.roll1 + pr.roll2 + pr.roll3 + pr.roll4 + pr.roll5 + pr.roll6) AS rolls FROM tbl_payroll dv join tbl_payroll pr on pr.dv_id = dv.dv_id WHERE dv.respo='".mysql_real_escape_string($data[0])."' && year(dv.date_added)='$year' && month(dv.date_added)='$month'";**
$run_viewrecord = mysql_query($viewrecord) or die(mysql_error());

{
echo "<table border='1' width='100%' style='border:1px solid silver' cellpadding='5px' cellspacing='0px'>
<tr bgcolor='#666666' style='color:#FFFFFF'>
<th>Date Encoded</th>
------------HEADER--------- etc....

-------THERE SHOULD BE A IF STATEMATE HERE-----------------
(where if no records match "dv.dv_id=pr.pr.dv_id". It would still display records from tbl_dv..)

while ($row = mysql_fetch_row($run_viewrecord)) {

if($color==1){
echo "<tr bgcolor='#ffffff'>";
echo "<td align='center'>" .date_format(date_create($row[17]), "m/d/y")."</td>
**--------- I WANT TO DISPLAY THE ROLLS HERE --------------------**
echo "</td></tr>";

$color="2";
}   else {
echo "<tr bgcolor='#ebeaea'>";
echo "<td align='center'>" .date_format(date_create($row[17]), "m/d/y")."</td>
**--------- I WANT TO DISPLAY THE ROLLS HERE --------------------**
echo "</td></tr>";

$color="1";
}
}
echo '</table>';
echo '<td><tr><table><br /><br />';
}
?>

I was hoping to add an IF statement before WHILE. 我希望在WHILE之前添加IF语句。 Which will still display records even there is no match dv_id on both table2. 即使在两个table2上都没有匹配的dv_id,它仍将显示记录。 It should still display records.. The COLUMN ROLLS IF No match it will display a 0.00 value. 它仍然应该显示记录。。COLUMN ROLLS IF如果不匹配,它将显示0.00值。 LINK>> http://i599.photobucket.com/albums/tt79/emcevo/viewphpdisplay_zpsfc6a8174.jpg 链接>> http://i599.photobucket.com/albums/tt79/emcevo/viewphpdisplay_zpsfc6a8174.jpg

You could do this programatically by adding up the returned values for each record row in PHP. 您可以通过将PHP中每个记录行的返回值加起来以编程方式进行此操作。

You could also do something like 您也可以做类似的事情

 $viewrecord = "SELECT *, (pr.roll1 + pr.roll2 + 
                pr.roll3 + pr.roll4 + pr.roll5 + pr.roll6) as rolls 
 FROM tbl_dv dv LEFT OUTER JOIN tbl_payroll pr on dv.dv_id = pr.dv_id 
 RIGHT OUTER JOIN tbl_payroll pr on dv.dv_id = pr.dv_id 
 WHERE dv.respo='".mysql_real_escape_string($data[0])."' 
 && year(dv.date_added)='$year' && month(dv.date_added)='$month'";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 MySQL Select语句where table1.id!= table2.id - MySQL Select statement Where table1.id != table2.id PHP MYSQL JOIN QUERY 2 数据库,其中 table1.id = table2.id,如何将 table2.content 显示为 table1.id - PHP MYSQL JOIN QUERY 2 Databases, Where table1.id = table2.id, How to display table2.content as table1.id Laravel 一页杂物 Select 全部来自 table2 其中 id = table1.id - Laravel one page crud Select all from table2 where id = table1.id Mysql - UPDATE表SET列= SELECT COUNT(*)FROM(SELECT * FROM table2 WHERE table2.id = table.id))不可能 - Mysql — UPDATE table SET column = SELECT COUNT(*) FROM ( SELECT * FROM table2 WHERE table2.id = table.id ) ) Impossible MySQL使用table1.id REGEXP table2.id为同一组选择不同的行 - MySQL select distinct rows for same group using table1.id REGEXP table2.id 连接两个表,其中table1.id等于table2.table1_id,但仅显示table1.id中在table2.table1_id中找不到的行 - Join two tables where table1.id equals table2.table1_id, but only display rows from table1.id that cannot be found in table2.table1_id 当我使用此php时,结果显示所有表而不是table1.id = table2.id的特定条件 - When i use this php the results show all the table not the specific condition that table1.id = table2.id PHP / MySQL-尝试选择两列,其中table1中的id等于table2中的id时出现问题 - PHP/MySQL - Trouble when trying to select two columns where id from table1 is equal to id from table2 在 mysql 中选择 table1 和 table2 中的所有结果,其中两个表都有一个公共 ID - Select all results from table1 as well table2 in mysql where both table has one common id 当table1.id = table2.id时如何打印一件事,而如果“ if else”又如何打印? - How can I print one thing when table1.id=table2.id, and another thing 'if else'?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM