[英]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
,如果你的其它表的一個koord
, zlec_adresy
, piorytet
和zlec_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.