小编Flu*_*feh的帖子

SQL查询从多个表返回数据

我想知道以下内容:

  • 如何从我的数据库中的多个表中获取数据?
  • 有什么类型的方法可以做到这一点?
  • 什么是联盟和联盟?它们如何彼此不同?
  • 我应该何时使用每一个与其他人相比?

我打算在我的(例如 - PHP)应用程序中使用它,但不想对数据库运行多个查询,我有什么选项可以从单个查询中的多个表中获取数据?

注意:我正在写这篇文章,因为我希望能够链接到我在PHP队列中经常遇到的众多问题的精心编写的指南,因此我可以在发布答案时链接到此以获取更多详细信息.

答案涵盖以下内容:

  1. 第1部分 - 联接和联盟
  2. 第2部分 - 子查询
  3. 第3部分 - 技巧和有效代码
  4. 第4部分 - From子句中的子查询
  5. 第5部分 - John's Tricks的混合包

mysql sql select

425
推荐指数
6
解决办法
78万
查看次数

INSERT ...在WHERE的重复键更新?

我正在做一个INSERT ... ON DUPLICATE KEY UPDATE但是我需要更新部分是有条件的,只有在某些额外条件发生变化时才进行更新.

但是,WHERE不允许这样做UPDATE.这有什么解决方法吗?

我不能组合INSERT/UPDATE/SELECT,因为这需要在复制上工作.

mysql replication

40
推荐指数
2
解决办法
4万
查看次数

如何在PHP中声明一个全局变量我可以跨模板使用?

在wordpress中,它会调用header.php,然后调用任何模板名称或请求的页面.如何在我的php标头中声明一个变量,然后我可以在其他模板中引用它?

php wordpress

31
推荐指数
2
解决办法
8万
查看次数

来自其他表的SQL IF条件

我是网站的新手,我需要你们的帮助.以下是我可以在此站点http://sqlfiddle.com/#!3/134c3中运行的架构.我的数据库名称是车辆检查.我的问题是在这个架构之后.

  CREATE TABLE Car  
  ([CarID] varchar(36), 
   [PlateNo] varchar(6),
   [Package] int);   

  INSERT INTO Car([CarID], [PlateNo], [Package])
  VALUES('A57D4151-BD49-4B44-AF10-000F1C298E05', '8112AG', 4);

  CREATE TABLE Event    
  ([EventID] int, 
   [CarID] varchar(36), 
   [EventTime] smalldatetime, 
   TicketStatus varchar (10)) ;    

 INSERT INTO Event([EventID], [CarID], [EventTime], TicketStatus) 
 VALUES (1, 'A57D4151-BD49-4B44-AF10-000F1C298E05', '20130701', 'Open'),  
        (2, 'A57D4151-BD49-4B44-AF10-000F1C298E05', '20130702', 'Close') ; 

 CREATE TABLE EventDefects
  ([EventDefectsID] int, 
   [EventID] int, 
   [Status] varchar(15), 
   [DefectID] int) ; 

 INSERT INTO EventDefects ([EventDefectsID], [EventID], [Status], [DefectID]) 
 VALUES (1, 1, 'YES', 1),
        (2, 1, 'NO', 2),
        (3, 1, 'N/A', …
Run Code Online (Sandbox Code Playgroud)

sql sql-server-2008

18
推荐指数
1
解决办法
268
查看次数

最佳实践:如何构建阵列 - 标准和命名约定

根据哪些元素包含迭代器与细节元素,多维数组结构中的最佳实践是什么?

我的大部分编程经验(我主要是为了好玩而做)来自谷歌的以下教程,所以如果这似乎是一个特别愚蠢的问题,我提前道歉 - 但我确实想开始改进我的代码.

每当我需要创建一个多维数组时,我的命名总是将计数器放在第一个元素中.

例如,如果我有一个单维数组,如下所示:

$myArray['year']=2012;
$myArray['month']='July';
$myArray['measure']=3;
// and so on.
Run Code Online (Sandbox Code Playgroud)

但是,如果我想让相同的数组保留一些历史所有者,我会添加另一个维度并将其格式化如下:

$myArray[$owner]['year']=2012;
$myArray[$owner]['month']='July';
$myArray[$owner]['measure']=3;
Run Code Online (Sandbox Code Playgroud)

编辑:为了确保我的示例不是正确的方向或引导,我基本上遵循这个结构:

$myArray[rowOfData][columnOfData]
Run Code Online (Sandbox Code Playgroud)

现在,我的问题是关于公认的惯例.我应该做以下吗?

$myArray['year'][$owner]=2012;
$myArray['month'][$owner]='July';
$myArray['measure'][$owner]=3;
Run Code Online (Sandbox Code Playgroud)

编辑:使用上面的编辑,它应该是:

$myArray[columnOfData][rowOfData]
Run Code Online (Sandbox Code Playgroud)

我已经搜索过有关数组命名约定的内容,但是仍在讨论是否将数组命名为复数的文章.我一直在命名它们的方式似乎更合乎逻辑,我认为它遵循一个更好地类似于一个对象的结构,object->secondaryLevel->detail但是据我所知,我一直都在做这个问题.随着我越来越多地参与编程,如果他们错了,我宁愿改变我的习惯.

是否有可接受的标准,或者只是阵列的任何内容?如果您正在查看其他人编写的代码,那么期望的格式是什么?我知道任何有意义/直观的结构都是可以接受的.

从迭代的角度来看,以下哪一项更直观?:

for($i=0;$i<$someNumber;$i++)
{
    echo $myArray[$i]['year'];
    // OR
    echo $myArray['year'][$owner];
}
Run Code Online (Sandbox Code Playgroud)

编辑:我确实把这篇文章标记为c#和Java,因为我想在PHP程序员之外得到一些意见.我认为,由于数组被用于许多不同的语言,所以从各种语言的程序员那里得到一些输入会很好.

php arrays naming-conventions

13
推荐指数
1
解决办法
1万
查看次数

如何从谷歌获取referer搜索查询?

就在两天前,以下代码用于从谷歌获取搜索查询:

$refer = parse_url($_SERVER['HTTP_REFERER']);
$host = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST);
$query = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_QUERY);

if(strstr($host,'www.google.com'))
{
    //do google stuff
    $qstart = strpos($query, 'q=') +2;
    $qend = strpos($query, '&', $qstart);
    $qlength = $qend - $qstart;
    $querystring = substr($query, $qstart, $qlength);
    $querystring = str_replace('q=','',$querystring);
    $keywords = explode('%20',$querystring);
    $keywords = implode(' ', $keywords);
    return $keywords;                      
    }
Run Code Online (Sandbox Code Playgroud)

但是,现在却没有.我通过使用echo($ query)对其进行了测试,看来google进程引用查询请求的方式已经改变.以前$查询包括在内

"q=term1%20term2%20term3%20...

但是,现在,当$ query被回显时,我得到以下输出:

sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CCsQFjAB&url=http%3A%2F%2Fexample.com%2F&ei=vDA-UNnxHuOjyAHlloGYCA&usg=AFQjCNEvzNXHULR0OvoPMPSWxIlB9-fmpg&sig2=iPinsBaCFuhCLGFf0JHAsQ
Run Code Online (Sandbox Code Playgroud)

有办法解决这个问题吗?

php search-engine google-search

11
推荐指数
1
解决办法
2万
查看次数

递归搜索全局变量及其属性中的值

假设我想'StackOverflow'在所有声明的变量中搜索一个值window.我可以用这段代码做到:

function globalSearch(obj, value) {
    for(var p in obj)
        if(obj[p] == value)
            return(p);
}
globalSearch(window, 'StackOverflow');
Run Code Online (Sandbox Code Playgroud)

此代码将返回具有此值的变量的名称(或不返回任何内容).所以,如果我已经声明了一个带有值的变量'StackOverflow',它将成功找到它.

我的问题是我想更深入地搜索通过window对象(以及它自己的嵌套对象),以实现这样的结果:

var x = 'StackOverflow'                     // returns 'x'
var y = { a : 'StackOverflow' }             // returns 'y.a'
var z = { a : { b: 'StackOverflow' } }      // returns 'z.a.b'
Run Code Online (Sandbox Code Playgroud)

我对Object的继承方法有问题.有没有办法做到这一点?

javascript arrays global-variables object

10
推荐指数
2
解决办法
6229
查看次数

为什么使用PHPUnit比创建自己的测试脚本更好?

浏览文档,我看到PHPUnit只提供以下功能:

http://www.phpunit.de/manual/current/en/writing-tests-for-phpunit.html#writing-tests-for-phpunit.assertions

所有这些都可以非常容易地在自定义测试脚本中实现,在不到1K的行中...

PHPUnit有2 MB的文件(大约200个),其中包含大量的类.此外,PHPUnit只从命令行运行:(

不会创建自己的脚本是一个更好的主意吗?

php phpunit unit-testing

8
推荐指数
3
解决办法
676
查看次数

如何从多维数组中获取单个类型的数组(没有循环)

我有以下数组$ foo

array(10) {
[0] => array(4) {

["merchantId"] => string(5) "12e21"
["programId"] => string(27) "ddd3333"
["networkId"] => int(4)
["clientId"] => int(178)
}
[1] => array(4) {

["merchantId"] => string(5) "112e1"
["programId"] => string(27) "2vfrdbv1&=10&tmfdpid=csss"
["networkId"] => int(4)
["clientId"] => int(178)
}
[2] => array(4) {

["merchantId"] => string(5) "112e1"
["programId"] => string(27) "2vfrdbv1&=10&tmfdpid=csss"
["networkId"] => int(4)
["clientId"] => int(178)
}
Run Code Online (Sandbox Code Playgroud)

我需要一个clientId数组(仅限)

是否可以只访问clientId来创建一个没有循环的id数组?

就像是:

$foo['clientId']; //which doesn't work
Run Code Online (Sandbox Code Playgroud)

php arrays multidimensional-array

6
推荐指数
1
解决办法
404
查看次数

实现Web地址正则表达式

我在网上找到了以下内容但是我在实现它时遇到了麻烦

(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])?

这就是我想要php做的事情:

请考虑以下事项: Look here: http://www.rocketlanguages.com/spanish/resources/pronunciation_spanish_accents.php

把它变成: Look here: <a href="http://www.rocketlanguages.com/spanish/resources/pronunciation_spanish_accents.php">http://www.rocketlanguages.com/span...anish_accents.php</a>

如果URL很长,那么文本会在中间被分解为......

php regex

5
推荐指数
1
解决办法
112
查看次数