簡體   English   中英

SQL查詢似乎不會影響相同的行數,添加一個count語句

[英]SQL Query seems not to affect the same number of rows, Adding a count statement

我做了一個看起來像這樣的查詢

查詢1。

  SELECT zlec_status.nazwa                       AS Status, 
           piorytet.nazwa                          AS Priorytet, 
           Concat(koord.imie, ' ', koord.nazwisko) AS `Koordynator`, 
           Concat(zlec_adresy.miasto, ' - ', zlec_adresy.ulica, ' ', 
           zlec_adresy.oddzial) 
                                                   AS `adres`, 
           zlec_z_dnia,zlec_id, 
           zlec_nr, 
           zlec_do, 
           zlec_ogran, 
           awizacje, 
           awizacja_na_dzien, 
           termin_zamkniecia, 
           tresc, 
           uwagi 
    FROM   zlec 
           INNER JOIN koord 
                   ON zlec.koord = koord.id 
           INNER JOIN zlec_adresy 
                   ON zlec.zlec_addres = zlec_adresy.id 
           INNER JOIN piorytet 
                   ON zlec.priorytet = piorytet.id 
           INNER JOIN zlec_status 
                   ON zlec.status_zlecenia = zlec_status.id 

以下是一個普通的

查詢2。

SELECT * FROM zlec;

問題是第一個查詢返回(影響執行)48行,第二個查詢返回103行。 這可能是什么原因?

如果您想在自己的http://pastebin.com/cMPAtxCU上運行,我還將向您展示我對sql的理解。

子問題 -毫無疑問要從新問題開始,因為它也與行數有關。

此外,我想知道如何進入第一個查詢中的count(*)來獲取受影響的行-必須在sql中完成,我不能為此使用php代碼,對於它使用限制1可能會很好計數。

隨着INNER JOIN ,如果你的其它表的一個koordzlec_adresypiorytetzlec_status缺少對應於一個記錄的記錄zlec ,該記錄zlec不會在結果集。 如果要顯示zlec每條記錄,則必須使用LEFT JOIN 查看:

http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/

對於一個很好的解釋。

通過附加的內部聯接,可以消除行。 您是否嘗試過將內部聯接添加到“ Select * FROM zlec;”中?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM