Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

दो तालिकाओं से पूछताछ करते समय विदेशी कुंजी का उपयोग कैसे करें

मुझे यकीन नहीं है, अगर आप समझ गए हैं कि विदेशी कुंजियों का उपयोग किस लिए किया जाता है। एक विदेशी कुंजी मूल रूप से कहती है "इस प्रविष्टि के लिए मूल तालिका में एक प्रविष्टि होनी चाहिए"। आपने कहा था user_id is foreign key in vehicle table , जो मेरे लिए स्पष्ट नहीं है।

तो, मान लें कि आपके पास इस तरह की एक तालिका परिभाषा है:

CREATE TABLE vehicles
(`id_car` int, `car_model` varchar(2), `car_owner` int);


CREATE TABLE users
(`user_id` int, `user_name` varchar(5), `user_phone` varchar(7)
, CONSTRAINT `fk_your_foreign_key` FOREIGN KEY (user_id) REFERENCES vehicles(car_owner)
);

जब आप तालिका में एक नया उपयोगकर्ता सम्मिलित करना चाहते हैं, तो user_id वाहन तालिका में car_owner कॉलम में एक मौजूदा प्रविष्टि होनी चाहिए।

व्यापार नियमों को लागू करने के लिए विदेशी चाबियां हैं। क्या हर उपयोगकर्ता के लिए कार का मालिक होना अनिवार्य है? या दूसरी तरफ, क्या हर कार का स्वामित्व किसी के पास होना चाहिए? यदि आप दोनों प्रश्नों का उत्तर नहीं के साथ दे सकते हैं, तो इस मामले के लिए कोई विदेशी कुंजी लागू न करें। लेकिन ऐसा करें, यदि आप निश्चित रूप से हां में उत्तर दे सकते हैं।

आप जो जानकारी खोज रहे हैं उसे प्राप्त करने के लिए बस

. करें
SELECT 
* 
FROM 
vehicles 
INNER JOIN users ON vehicles.car_owner = users.user_id


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं रेल माइग्रेशन में चेक बाधा कैसे जोड़ूं?

  2. उच्च आवृत्ति अद्यतनों पर StaleObjectStateException

  3. PHP और MySQL समय से सेकेंड घटाएं

  4. mysqldump तालिका 'तालिका 1' के लिए डंप डेटा छोड़ने में विफल रहता है, इसमें कोई फ़ील्ड नहीं है

  5. MySQL सम्मिलित त्रुटि:ER_BAD_FIELD_ERROR:'फ़ील्ड सूची' में अज्ञात कॉलम '2525'