Mysql
 sql >> база данни >  >> RDS >> Mysql

Не мога да получа тази заявка за присъединяване към mysql, за да произведе желания резултат

Съвсем сигурен съм, че проблемът ви е заради вашата GROUP BY клауза. Не съм сигурен каква е целта ви да го използвате, но опитайте без него. Ако получите дублиращи се редове, опитайте да използвате SELECT DISTINCT . Ако целта ви е била да подредите резултатите въз основа на тази колона, тогава използвайте ORDER BY .

Също така, като посочите receipt_no два пъти в WHERE клаузата е излишна. Тези две таблици вече са обединени от тази колона, така че филтрирането й в една таблица е всичко, което трябва да направите. И обратните отметки всъщност не са необходими, с изключение на някои специални изключения, като интервали или запетаи в името на колоната или колони, наречени по същия начин като запазените думи (може да са и няколко други). Единствената ваша колона, която изглежда, че се нуждае от обратни отметки, е date колона, но дори и да ги изключите в тази колона, пак трябва да сте добре. Просто намирам, че отметките навсякъде правят заявката по-дълга и по-трудна за четене. Те не нараняват нищо, като са там, така че можете да ги оставите, ако това е вашето предпочитание, но лично аз не съм фен.

Пренаписах вашата заявка с моите модификации, споменати по-горе, плюс дадох псевдоними на таблиците, за да я съкратя допълнително. Това не подобрява производителността или нещо подобно, просто улеснява четенето на IMO:

SELECT DISTINCT
    b.receipt_no, client, operator, discount, total_amount,
    amount_paid, balance, `date`, jobtitle, quantity,
    amount, date_paid, old_balance, debtor_amount_paid, new_balance
FROM
    booking b
    INNER JOIN jobtitle jt ON jt.bookingID = b.bookingID
    INNER JOIN first_graphics_debtors fgd ON fgd.receipt_no = b.receipt_no
WHERE
    b.receipt_no = '753263343'
ORDER BY
    jt.quantity


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вземете OLD стойност в MySQL Trigger СЛЕД изявление за актуализиране

  2. включете клас Jfactory във външен php файл, Joomla

  3. Изберете продукти по множество атрибути, като използвате И вместо ИЛИ конкатенатор, модел на данни EAV

  4. PHP MySQL автоматично довършване

  5. Превод на Oracle user_indexes в MySQL